auth/internal/token/usecase/token_usecase_test.go

54 lines
1.6 KiB
Go
Raw Normal View History

2021-09-20 15:45:54 +00:00
package usecase_test
import (
"context"
2021-09-22 21:32:40 +00:00
"sync"
2021-09-20 15:45:54 +00:00
"testing"
"github.com/spf13/viper"
2021-09-20 15:45:54 +00:00
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
configrepo "source.toby3d.me/website/oauth/internal/config/repository/viper"
configucase "source.toby3d.me/website/oauth/internal/config/usecase"
"source.toby3d.me/website/oauth/internal/domain"
2021-09-20 15:45:54 +00:00
repository "source.toby3d.me/website/oauth/internal/token/repository/memory"
"source.toby3d.me/website/oauth/internal/token/usecase"
)
func TestVerify(t *testing.T) {
t.Parallel()
v := viper.New()
v.SetDefault("indieauth.jwtSigningAlgorithm", "HS256")
v.SetDefault("indieauth.jwtSecret", "hackme")
repo := repository.NewMemoryTokenRepository(new(sync.Map))
accessToken := domain.TestToken(t)
token, err := usecase.NewTokenUseCase(
repo, configucase.NewConfigUseCase(configrepo.NewViperConfigRepository(v)),
).Verify(context.TODO(), accessToken.AccessToken)
require.NoError(t, err)
assert.Equal(t, accessToken.AccessToken, token.AccessToken)
}
2021-09-20 15:45:54 +00:00
func TestRevoke(t *testing.T) {
t.Parallel()
v := viper.New()
v.SetDefault("indieauth.jwtSigningAlgorithm", "HS256")
v.SetDefault("indieauth.jwtSecret", "hackme")
repo := repository.NewMemoryTokenRepository(new(sync.Map))
accessToken := domain.TestToken(t)
2021-09-20 15:45:54 +00:00
require.NoError(t, usecase.NewTokenUseCase(
repo, configucase.NewConfigUseCase(configrepo.NewViperConfigRepository(v)),
).Revoke(context.TODO(), accessToken.AccessToken))
2021-09-20 15:45:54 +00:00
result, err := repo.Get(context.TODO(), accessToken.AccessToken)
assert.NoError(t, err)
assert.Equal(t, accessToken.AccessToken, result.AccessToken)
2021-09-20 15:45:54 +00:00
}