auth/internal/domain/token_test.go

62 lines
1.4 KiB
Go

package domain_test
import (
"fmt"
"net/http"
"testing"
"time"
"source.toby3d.me/toby3d/auth/internal/common"
"source.toby3d.me/toby3d/auth/internal/domain"
)
func TestNewToken(t *testing.T) {
t.Parallel()
expResult := domain.TestToken(t)
opts := domain.NewTokenOptions{
Algorithm: "",
NonceLength: 0,
Issuer: expResult.ClientID,
Expiration: 1 * time.Hour,
Scope: expResult.Scope,
Subject: expResult.Me,
Secret: []byte("hackme"),
}
result, err := domain.NewToken(opts)
if err != nil {
t.Fatalf("%+v", err)
}
if fmt.Sprint(result.ClientID) != fmt.Sprint(expResult.ClientID) ||
fmt.Sprint(result.Me) != fmt.Sprint(expResult.Me) ||
fmt.Sprint(result.Scope) != fmt.Sprint(expResult.Scope) {
t.Errorf("NewToken(%+v) = %+v, want %+v", opts, result, expResult)
}
}
func TestToken_SetAuthHeader(t *testing.T) {
t.Parallel()
in := domain.TestToken(t)
req, _ := http.NewRequest(http.MethodGet, "https://example.com/", nil)
in.SetAuthHeader(req)
exp := "Bearer " + in.AccessToken
if out := req.Header.Get(common.HeaderAuthorization); out != exp {
t.Errorf("SetAuthHeader(%+v) = %s, want %s", req, out, exp)
}
}
func TestToken_String(t *testing.T) {
t.Parallel()
token := domain.TestToken(t)
exp := "Bearer " + token.AccessToken
if out := token.String(); out != exp {
t.Errorf("String() = %s, want %s", out, exp)
}
}