Files
at-container-registry/pkg/auth/oauth/refresher_test.go
T

67 lines
1.6 KiB
Go

package oauth
import (
"testing"
)
func TestNewRefresher(t *testing.T) {
tmpDir := t.TempDir()
storePath := tmpDir + "/oauth-test.json"
store, err := NewFileStore(storePath)
if err != nil {
t.Fatalf("NewFileStore() error = %v", err)
}
app, err := NewApp("http://localhost:5000", store, "*", "", "AT Container Registry")
if err != nil {
t.Fatalf("NewApp() error = %v", err)
}
refresher := NewRefresher(app)
if refresher == nil {
t.Fatal("Expected non-nil refresher")
}
if refresher.app == nil {
t.Error("Expected app to be set")
}
if refresher.sessions == nil {
t.Error("Expected sessions map to be initialized")
}
if refresher.refreshLocks == nil {
t.Error("Expected refreshLocks map to be initialized")
}
}
func TestRefresher_SetUISessionStore(t *testing.T) {
tmpDir := t.TempDir()
storePath := tmpDir + "/oauth-test.json"
store, err := NewFileStore(storePath)
if err != nil {
t.Fatalf("NewFileStore() error = %v", err)
}
app, err := NewApp("http://localhost:5000", store, "*", "", "AT Container Registry")
if err != nil {
t.Fatalf("NewApp() error = %v", err)
}
refresher := NewRefresher(app)
// Test that SetUISessionStore doesn't panic with nil
// Full mock implementation requires implementing the interface
refresher.SetUISessionStore(nil)
// Verify nil is accepted
if refresher.uiSessionStore != nil {
t.Error("Expected UI session store to be nil after setting nil")
}
}
// Note: Full session management tests will be added in comprehensive implementation
// Those tests will require mocking OAuth sessions and testing cache behavior