Files
go-garminconnect/internal/auth/filestorage_test.go
2025-08-27 08:32:14 -07:00

57 lines
1.2 KiB
Go

package auth
import (
"os"
"path/filepath"
"testing"
"github.com/dghubble/oauth1"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestFileStorage(t *testing.T) {
// Setup
tempDir := t.TempDir()
storage := NewFileStorage()
storage.Path = filepath.Join(tempDir, "token.json")
t.Run("SaveToken and GetToken", func(t *testing.T) {
token := &oauth1.Token{
Token: "test_token",
TokenSecret: "test_secret",
}
// Save token
err := storage.SaveToken(token)
require.NoError(t, err)
// Get token
retrievedToken, err := storage.GetToken()
require.NoError(t, err)
// Verify
assert.Equal(t, token.Token, retrievedToken.Token)
assert.Equal(t, token.TokenSecret, retrievedToken.TokenSecret)
})
t.Run("EmptyToken", func(t *testing.T) {
token := &oauth1.Token{
Token: "",
TokenSecret: "",
}
err := storage.SaveToken(token)
require.NoError(t, err)
_, err = storage.GetToken()
require.ErrorIs(t, err, os.ErrNotExist)
})
t.Run("NonExistentFile", func(t *testing.T) {
storage.Path = filepath.Join(tempDir, "nonexistent.json")
_, err := storage.GetToken()
require.ErrorIs(t, err, os.ErrNotExist)
})
}