fix: harden controlled AI session consistency
This commit is contained in:
@@ -63,7 +63,7 @@ func TestRecordCallStoresAuditFields(t *testing.T) {
|
||||
database := newTestDB(t)
|
||||
gateway := NewGateway("system-key")
|
||||
|
||||
require.NoError(t, gateway.RecordCall(3, "openai", "system", "inbox_analyze", "failed", "rate limited"))
|
||||
require.NoError(t, gateway.RecordCall(database, 3, "openai", "system", "inbox_analyze", "failed", "rate limited"))
|
||||
|
||||
var log models.SenlinAgentAICallLog
|
||||
require.NoError(t, database.First(&log).Error)
|
||||
@@ -75,12 +75,13 @@ func TestRecordCallStoresAuditFields(t *testing.T) {
|
||||
require.Equal(t, "rate limited", log.Error)
|
||||
}
|
||||
|
||||
func TestCheckRateLimitRejectsCallsOverWindow(t *testing.T) {
|
||||
newTestDB(t)
|
||||
func TestReserveRateLimitRejectsCallsOverWindow(t *testing.T) {
|
||||
database := newTestDB(t)
|
||||
require.NoError(t, database.Create(&models.SenlinAgentUser{Email: "rate@example.com", DisplayName: "Rate", PasswordHash: "hash"}).Error)
|
||||
gateway := NewGateway("system-key")
|
||||
require.NoError(t, gateway.RecordCall(3, "openai", "system", "inbox_analyze", "succeeded", ""))
|
||||
require.NoError(t, gateway.ReserveRateLimit(1, "inbox_analyze", 1, time.Hour))
|
||||
|
||||
err := gateway.CheckRateLimit(3, "inbox_analyze", 1, time.Hour)
|
||||
err := gateway.ReserveRateLimit(1, "inbox_analyze", 1, time.Hour)
|
||||
|
||||
require.ErrorContains(t, err, "ai rate limit exceeded")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user