mirror of
https://tangled.org/evan.jarrett.net/at-container-registry
synced 2026-09-19 00:34:16 +00:00
67 lines
1.6 KiB
Go
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
|