feat: enhance API key usage grouping with base URL inclusion

- Updated `GetAPIKeyUsage` to group API key usage by "base_url|api_key" composite keys.
- Adjusted logic to handle `base_url` extraction from auth attributes.
- Revised unit tests to validate "base_url|api_key" grouping behavior.
This commit is contained in:
Luis Pater
2026-05-02 02:20:49 +08:00
parent e37f3be0bf
commit 8c2f1a80d3
2 changed files with 18 additions and 8 deletions
@@ -31,7 +31,8 @@ func TestGetAPIKeyUsage_GroupsByProviderAndAPIKey(t *testing.T) {
ID: "codex-auth",
Provider: "codex",
Attributes: map[string]string{
"api_key": "codex-key",
"api_key": "codex-key",
"base_url": "https://codex.example.com",
},
}); err != nil {
t.Fatalf("register codex auth: %v", err)
@@ -40,7 +41,8 @@ func TestGetAPIKeyUsage_GroupsByProviderAndAPIKey(t *testing.T) {
ID: "claude-auth",
Provider: "claude",
Attributes: map[string]string{
"api_key": "claude-key",
"api_key": "claude-key",
"base_url": "https://claude.example.com",
},
}); err != nil {
t.Fatalf("register claude auth: %v", err)
@@ -67,7 +69,7 @@ func TestGetAPIKeyUsage_GroupsByProviderAndAPIKey(t *testing.T) {
t.Fatalf("decode payload: %v", err)
}
codexBuckets := payload["codex"]["codex-key"]
codexBuckets := payload["codex"]["https://codex.example.com|codex-key"]
if len(codexBuckets) != 20 {
t.Fatalf("codex buckets len = %d, want 20", len(codexBuckets))
}
@@ -76,7 +78,7 @@ func TestGetAPIKeyUsage_GroupsByProviderAndAPIKey(t *testing.T) {
t.Fatalf("codex totals = %d/%d, want 1/1", codexSuccess, codexFailed)
}
claudeBuckets := payload["claude"]["claude-key"]
claudeBuckets := payload["claude"]["https://claude.example.com|claude-key"]
if len(claudeBuckets) != 20 {
t.Fatalf("claude buckets len = %d, want 20", len(claudeBuckets))
}