mirror of
https://github.com/sstent/go-garminconnect.git
synced 2026-02-16 12:15:34 +00:00
sync
This commit is contained in:
85
internal/auth/filestorage_test.go
Normal file
85
internal/auth/filestorage_test.go
Normal file
@@ -0,0 +1,85 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/dghubble/oauth1"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestFileStorage(t *testing.T) {
|
||||
// Create temp directory for tests
|
||||
tempDir, err := os.MkdirTemp("", "garmin-test")
|
||||
assert.NoError(t, err)
|
||||
defer os.RemoveAll(tempDir)
|
||||
|
||||
storage := &FileStorage{
|
||||
Path: filepath.Join(tempDir, "token.json"),
|
||||
}
|
||||
|
||||
// Test saving and loading token
|
||||
t.Run("SaveAndLoadToken", func(t *testing.T) {
|
||||
testToken := &oauth1.Token{
|
||||
Token: "access-token",
|
||||
TokenSecret: "access-secret",
|
||||
}
|
||||
|
||||
// Save token
|
||||
err := storage.SaveToken(testToken)
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Load token
|
||||
loadedToken, err := storage.GetToken()
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, testToken.Token, loadedToken.Token)
|
||||
assert.Equal(t, testToken.TokenSecret, loadedToken.TokenSecret)
|
||||
})
|
||||
|
||||
// Test missing token file
|
||||
t.Run("TokenMissing", func(t *testing.T) {
|
||||
_, err := storage.GetToken()
|
||||
assert.ErrorIs(t, err, os.ErrNotExist)
|
||||
})
|
||||
|
||||
// Test token expiration
|
||||
t.Run("TokenExpiration", func(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
token *oauth1.Token
|
||||
expected bool
|
||||
}{
|
||||
{
|
||||
name: "EmptyToken",
|
||||
token: &oauth1.Token{},
|
||||
expected: true,
|
||||
},
|
||||
{
|
||||
name: "ValidToken",
|
||||
token: &oauth1.Token{
|
||||
Token: "valid",
|
||||
TokenSecret: "valid",
|
||||
},
|
||||
expected: false,
|
||||
},
|
||||
{
|
||||
name: "ExpiredToken",
|
||||
token: &oauth1.Token{
|
||||
Token: "expired",
|
||||
TokenSecret: "expired",
|
||||
CreatedAt: time.Now().Add(-200 * 24 * time.Hour), // 200 days ago
|
||||
},
|
||||
expected: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
expired := storage.TokenExpired(tc.token)
|
||||
assert.Equal(t, tc.expected, expired)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user