28 lines
885 B
Go
28 lines
885 B
Go
package auth
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/gochat/gochat/internal/config"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestRefreshTokenStoreScopesTokensByClient(t *testing.T) {
|
|
store := NewRefreshTokenStore(nil, &config.JWTConfig{RefreshExpiryHours: 24})
|
|
ctx := context.Background()
|
|
require.NoError(t, store.StoreForClient(ctx, 7, "chrome", "chrome-token"))
|
|
require.NoError(t, store.StoreForClient(ctx, 7, "firefox", "firefox-token"))
|
|
|
|
valid, err := store.ValidateForClient(ctx, 7, "chrome", "chrome-token")
|
|
require.NoError(t, err)
|
|
require.True(t, valid)
|
|
require.NoError(t, store.RevokeClient(ctx, 7, "chrome"))
|
|
valid, err = store.ValidateForClient(ctx, 7, "chrome", "chrome-token")
|
|
require.NoError(t, err)
|
|
require.False(t, valid)
|
|
valid, err = store.ValidateForClient(ctx, 7, "firefox", "firefox-token")
|
|
require.NoError(t, err)
|
|
require.True(t, valid)
|
|
}
|