test: Add LoadAPITokens error path tests
- Test nonexistent file returns empty slice (not error) - Test empty file returns empty slice - Test invalid JSON returns error - Improves LoadAPITokens coverage from 80% to 93.3%
This commit is contained in:
parent
9461afc0be
commit
50843d3013
1 changed files with 54 additions and 0 deletions
|
|
@ -211,3 +211,57 @@ func TestLoadAPITokensAppliesLegacyScopes(t *testing.T) {
|
||||||
t.Fatalf("expected legacy token to default to wildcard scope, got %#v", tokens[0].Scopes)
|
t.Fatalf("expected legacy token to default to wildcard scope, got %#v", tokens[0].Scopes)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestLoadAPITokens_ErrorPaths(t *testing.T) {
|
||||||
|
t.Run("nonexistent file returns empty slice", func(t *testing.T) {
|
||||||
|
dir := t.TempDir()
|
||||||
|
persistence := NewConfigPersistence(dir)
|
||||||
|
|
||||||
|
tokens, err := persistence.LoadAPITokens()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("expected no error for missing file, got: %v", err)
|
||||||
|
}
|
||||||
|
if len(tokens) != 0 {
|
||||||
|
t.Fatalf("expected empty slice, got %d tokens", len(tokens))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("empty file returns empty slice", func(t *testing.T) {
|
||||||
|
dir := t.TempDir()
|
||||||
|
persistence := NewConfigPersistence(dir)
|
||||||
|
if err := persistence.EnsureConfigDir(); err != nil {
|
||||||
|
t.Fatalf("EnsureConfigDir: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write empty file
|
||||||
|
if err := os.WriteFile(filepath.Join(dir, "api_tokens.json"), []byte{}, 0600); err != nil {
|
||||||
|
t.Fatalf("write file: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
tokens, err := persistence.LoadAPITokens()
|
||||||
|
if err != nil {
|
||||||
|
t.Fatalf("expected no error for empty file, got: %v", err)
|
||||||
|
}
|
||||||
|
if len(tokens) != 0 {
|
||||||
|
t.Fatalf("expected empty slice, got %d tokens", len(tokens))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("invalid JSON returns error", func(t *testing.T) {
|
||||||
|
dir := t.TempDir()
|
||||||
|
persistence := NewConfigPersistence(dir)
|
||||||
|
if err := persistence.EnsureConfigDir(); err != nil {
|
||||||
|
t.Fatalf("EnsureConfigDir: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Write invalid JSON
|
||||||
|
if err := os.WriteFile(filepath.Join(dir, "api_tokens.json"), []byte("not valid json"), 0600); err != nil {
|
||||||
|
t.Fatalf("write file: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err := persistence.LoadAPITokens()
|
||||||
|
if err == nil {
|
||||||
|
t.Fatal("expected error for invalid JSON, got nil")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue