evcc-io/util/oauth/refreshtokensource_test.go

33 lines
692 B
Go

package oauth
import (
"testing"
"time"
"github.com/stretchr/testify/require"
"golang.org/x/oauth2"
)
func TestMerge(t *testing.T) {
ts := &refreshTokenSource{
token: &oauth2.Token{
AccessToken: "access",
RefreshToken: "refresh",
Expiry: time.Now(),
},
refresher: func(_ *oauth2.Token) (*oauth2.Token, error) {
return (&oauth2.Token{
AccessToken: "new",
}).WithExtra(map[string]any{
"foo": "bar",
}), nil
},
}
r, err := ts.Token()
require.NoError(t, err)
require.Equal(t, "new", r.AccessToken, "unexpected access token")
require.Equal(t, "refresh", r.RefreshToken, "unexpected refresh token")
require.Equal(t, "bar", r.Extra("foo"))
}