fix: isolate in-memory client persistence
This commit is contained in:
+19
-7
@@ -10,7 +10,6 @@ import (
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"strings"
|
||||
"sync"
|
||||
"testing"
|
||||
)
|
||||
|
||||
@@ -136,18 +135,31 @@ func TestMemoryRefreshCallbackCanReadCurrentAuth(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestMemoryRefreshCallbackCanAcquireApplicationLock(t *testing.T) {
|
||||
var persistenceMu sync.Mutex
|
||||
client, _, server := newMemoryRefreshClient(t, func(AuthData) error {
|
||||
persistenceMu.Lock()
|
||||
defer persistenceMu.Unlock()
|
||||
return nil
|
||||
func TestMemoryRefreshCallbackCanPersistIndependently(t *testing.T) {
|
||||
persistencePath := filepath.Join(t.TempDir(), "persisted-auth.json")
|
||||
client, _, server := newMemoryRefreshClient(t, func(authData AuthData) error {
|
||||
payload, err := authData.MarshalJSON()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return os.WriteFile(persistencePath, payload, 0o600)
|
||||
})
|
||||
defer server.Close()
|
||||
|
||||
if err := client.refreshToken(context.Background()); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
payload, err := os.ReadFile(persistencePath)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var persisted AuthData
|
||||
if err := persisted.UnmarshalJSON(payload); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if persisted.ServiceToken != "new-token" || persisted.CUserID != "new-c-user" {
|
||||
t.Fatalf("persisted auth = %#v", persisted)
|
||||
}
|
||||
}
|
||||
|
||||
func TestMemoryRefreshPersistsGeneratedIdentity(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user