auth/internal/domain/token_test.go

66 lines
1.4 KiB
Go

package domain_test
import (
"bytes"
"fmt"
"testing"
"time"
http "github.com/valyala/fasthttp"
"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()
token := domain.TestToken(t)
expResult := []byte("Bearer " + token.AccessToken)
req := http.AcquireRequest()
defer http.ReleaseRequest(req)
token.SetAuthHeader(req)
result := req.Header.Peek(http.HeaderAuthorization)
if result == nil || !bytes.Equal(result, expResult) {
t.Errorf("SetAuthHeader(%+v) = %s, want %s", req, result, expResult)
}
}
func TestToken_String(t *testing.T) {
t.Parallel()
token := domain.TestToken(t)
expResult := "Bearer " + token.AccessToken
if result := token.String(); result != expResult {
t.Errorf("String() = %s, want %s", result, expResult)
}
}