Add projects
This commit is contained in:
parent
2d3a9ad623
commit
8b607dd700
1802 changed files with 503346 additions and 2 deletions
111
backend/sdk/cliproxy/auth/conductor_remove_test.go
Normal file
111
backend/sdk/cliproxy/auth/conductor_remove_test.go
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
package auth
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestManager_Remove_DeletesRuntimeAuth(t *testing.T) {
|
||||
manager := NewManager(nil, nil, nil)
|
||||
ctx := context.Background()
|
||||
|
||||
auth := &Auth{
|
||||
ID: "remove-runtime-auth",
|
||||
Provider: "claude",
|
||||
Status: StatusActive,
|
||||
Metadata: map[string]any{"email": "x@example.com"},
|
||||
}
|
||||
if _, errRegister := manager.Register(ctx, auth); errRegister != nil {
|
||||
t.Fatalf("register auth: %v", errRegister)
|
||||
}
|
||||
|
||||
manager.Remove(ctx, auth.ID)
|
||||
|
||||
if _, ok := manager.GetByID(auth.ID); ok {
|
||||
t.Fatalf("expected auth %q to be removed", auth.ID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestManager_Update_MissingAuthIsNoOp(t *testing.T) {
|
||||
manager := NewManager(nil, nil, nil)
|
||||
ctx := context.Background()
|
||||
|
||||
auth := &Auth{
|
||||
ID: "missing-update-auth",
|
||||
Provider: "claude",
|
||||
Status: StatusActive,
|
||||
}
|
||||
if _, errRegister := manager.Register(ctx, auth); errRegister != nil {
|
||||
t.Fatalf("register auth: %v", errRegister)
|
||||
}
|
||||
manager.Remove(ctx, auth.ID)
|
||||
|
||||
updated, errUpdate := manager.Update(ctx, &Auth{
|
||||
ID: auth.ID,
|
||||
Provider: "claude",
|
||||
Status: StatusDisabled,
|
||||
Disabled: true,
|
||||
})
|
||||
if errUpdate != nil {
|
||||
t.Fatalf("update removed auth: %v", errUpdate)
|
||||
}
|
||||
if updated != nil {
|
||||
t.Fatalf("expected update on removed auth to be no-op, got %#v", updated)
|
||||
}
|
||||
if _, ok := manager.GetByID(auth.ID); ok {
|
||||
t.Fatalf("expected removed auth to stay absent after late update")
|
||||
}
|
||||
}
|
||||
|
||||
func TestManager_Remove_UnschedulesAutoRefresh(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
manager := NewManager(nil, nil, nil)
|
||||
loop := newAuthAutoRefreshLoop(manager, time.Second, 1)
|
||||
manager.mu.Lock()
|
||||
manager.refreshLoop = loop
|
||||
manager.mu.Unlock()
|
||||
|
||||
lead := 10 * time.Minute
|
||||
setRefreshLeadFactory(t, "provider-lead-expiry", func() *time.Duration {
|
||||
d := lead
|
||||
return &d
|
||||
})
|
||||
|
||||
auth := &Auth{
|
||||
ID: "remove-refresh-auth",
|
||||
Provider: "provider-lead-expiry",
|
||||
Metadata: map[string]any{
|
||||
"email": "x@example.com",
|
||||
"expires_at": time.Now().Add(time.Hour).Format(time.RFC3339),
|
||||
},
|
||||
}
|
||||
if _, errRegister := manager.Register(ctx, auth); errRegister != nil {
|
||||
t.Fatalf("register auth: %v", errRegister)
|
||||
}
|
||||
|
||||
now := time.Now()
|
||||
if _, ok := nextRefreshCheckAt(now, auth, time.Second); !ok {
|
||||
t.Fatalf("expected auth to be scheduled before removal")
|
||||
}
|
||||
loop.applyDirty(now)
|
||||
loop.mu.Lock()
|
||||
if _, ok := loop.index[auth.ID]; !ok {
|
||||
loop.mu.Unlock()
|
||||
t.Fatalf("expected auth %q to be present in auto-refresh index before removal", auth.ID)
|
||||
}
|
||||
loop.mu.Unlock()
|
||||
|
||||
manager.Remove(ctx, auth.ID)
|
||||
|
||||
if _, ok := manager.GetByID(auth.ID); ok {
|
||||
t.Fatalf("expected auth to be removed")
|
||||
}
|
||||
loop.mu.Lock()
|
||||
if _, ok := loop.index[auth.ID]; ok {
|
||||
loop.mu.Unlock()
|
||||
t.Fatalf("expected auth %q to be removed from auto-refresh index", auth.ID)
|
||||
}
|
||||
loop.mu.Unlock()
|
||||
}
|
||||
Loading…
Reference in a new issue