fix: preserve messages dispatch config in repository hydration
This commit is contained in:
@@ -86,6 +86,45 @@ func (s *APIKeyRepoSuite) TestGetByKey_NotFound() {
|
||||
s.Require().Error(err, "expected error for non-existent key")
|
||||
}
|
||||
|
||||
func (s *APIKeyRepoSuite) TestGetByKeyForAuth_PreservesMessagesDispatchModelConfig() {
|
||||
user := s.mustCreateUser("getbykey-auth-dispatch@test.com")
|
||||
group, err := s.client.Group.Create().
|
||||
SetName("g-auth-dispatch").
|
||||
SetPlatform(service.PlatformOpenAI).
|
||||
SetStatus(service.StatusActive).
|
||||
SetSubscriptionType(service.SubscriptionTypeStandard).
|
||||
SetRateMultiplier(1).
|
||||
SetAllowMessagesDispatch(true).
|
||||
SetDefaultMappedModel("gpt-5.4").
|
||||
SetMessagesDispatchModelConfig(service.OpenAIMessagesDispatchModelConfig{
|
||||
OpusMappedModel: "gpt-5.4-nano",
|
||||
SonnetMappedModel: "gpt-5.3-codex",
|
||||
HaikuMappedModel: "gpt-5.4-mini",
|
||||
ExactModelMappings: map[string]string{
|
||||
"claude-sonnet-4.5": "gpt-5.4-nano",
|
||||
},
|
||||
}).
|
||||
Save(s.ctx)
|
||||
s.Require().NoError(err)
|
||||
|
||||
key := &service.APIKey{
|
||||
UserID: user.ID,
|
||||
Key: "sk-getbykey-auth-dispatch",
|
||||
Name: "Dispatch Key",
|
||||
GroupID: &group.ID,
|
||||
Status: service.StatusActive,
|
||||
}
|
||||
s.Require().NoError(s.repo.Create(s.ctx, key))
|
||||
|
||||
got, err := s.repo.GetByKeyForAuth(s.ctx, key.Key)
|
||||
s.Require().NoError(err)
|
||||
s.Require().NotNil(got.Group)
|
||||
s.Require().True(got.Group.AllowMessagesDispatch)
|
||||
s.Require().Equal("gpt-5.4", got.Group.DefaultMappedModel)
|
||||
s.Require().Equal("gpt-5.4-nano", got.Group.MessagesDispatchModelConfig.OpusMappedModel)
|
||||
s.Require().Equal("gpt-5.4-nano", got.Group.MessagesDispatchModelConfig.ExactModelMappings["claude-sonnet-4.5"])
|
||||
}
|
||||
|
||||
// --- Update ---
|
||||
|
||||
func (s *APIKeyRepoSuite) TestUpdate() {
|
||||
|
||||
Reference in New Issue
Block a user