Files
agent-radar 2ed3415fb7
Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
源码快照 @ 2026-09-01 (source-only, 剔除非源码素材)
2026-09-01 20:17:27 +08:00

77 lines
3.0 KiB
Go

package providerstatus
import "testing"
func TestReduceAuthEvidenceKeepsLocalConfigurationDistinctFromRemoteAuthentication(t *testing.T) {
configured := ReduceAuthEvidence(AuthObservation{}, LocalAuthEvidence(AuthInfo{
Status: AuthAuthenticated, AccountLabel: "user@example.com", AuthMethod: "oauth",
}))
if configured.Status != AuthObservationConfigured ||
configured.Authority != AuthEvidenceAuthorityLocal ||
configured.Reason != AuthReasonLocalSessionDetected {
t.Fatalf("configured observation = %#v", configured)
}
authenticated := ReduceAuthEvidence(configured, AuthEvidence{Kind: AuthEvidenceRemoteSuccess})
if authenticated.Status != AuthObservationAuthenticated ||
authenticated.Authority != AuthEvidenceAuthorityRemote {
t.Fatalf("authenticated observation = %#v", authenticated)
}
}
func TestAuthInfoFromObservationPreservesConfiguredAsPublicState(t *testing.T) {
info := AuthInfoFromObservation(AuthObservation{
Status: AuthObservationConfigured, Authority: AuthEvidenceAuthorityLocal,
AccountLabel: " user@example.com ", AuthMethod: " oauth ",
})
if info.Status != AuthConfigured || info.AccountLabel != "user@example.com" || info.AuthMethod != "oauth" {
t.Fatalf("auth info = %#v", info)
}
}
func TestReduceAuthEvidenceRemoteFailureOutranksStaleLocalStatus(t *testing.T) {
revoked := ReduceAuthEvidence(AuthObservation{}, AuthEvidence{
Kind: AuthEvidenceRemoteAuthFailure, Reason: AuthReasonSessionExpired,
})
got := ReduceAuthEvidence(revoked, LocalAuthEvidence(AuthInfo{
Status: AuthAuthenticated, AccountLabel: "stale@example.com",
}))
if got != revoked {
t.Fatalf("observation = %#v, want revoked %#v", got, revoked)
}
}
func TestReduceAuthEvidenceTransientFailurePreservesSettledState(t *testing.T) {
configured := ReduceAuthEvidence(AuthObservation{}, AuthEvidence{
Kind: AuthEvidenceLocalCredential, AuthMethod: "apiKey",
})
got := ReduceAuthEvidence(configured, AuthEvidence{
Kind: AuthEvidenceProbeFailure, Reason: "runtime-unavailable",
})
if got != configured {
t.Fatalf("observation = %#v, want configured %#v", got, configured)
}
initial := ReduceAuthEvidence(AuthObservation{}, AuthEvidence{Kind: AuthEvidenceProbeFailure})
if initial.Status != AuthObservationProbeFailed || initial.Reason != AuthReasonProbeFailed {
t.Fatalf("initial failure = %#v", initial)
}
}
func TestReduceAuthEvidenceExplicitResetAllowsFreshLocalCredentials(t *testing.T) {
revoked := ReduceAuthEvidence(AuthObservation{}, AuthEvidence{
Kind: AuthEvidenceRemoteAuthFailure, Reason: AuthReasonSessionExpired,
})
stillRevoked := ReduceAuthEvidence(revoked, AuthEvidence{Kind: AuthEvidenceLocalCredential})
if stillRevoked != revoked {
t.Fatalf("stale local evidence replaced remote failure: %#v", stillRevoked)
}
configured := ReduceAuthEvidence(AuthObservation{}, AuthEvidence{
Kind: AuthEvidenceLocalCredential, AuthMethod: "apiKey",
})
if configured.Status != AuthObservationConfigured {
t.Fatalf("fresh observation = %#v", configured)
}
}