nolint:tparallel,paralleltest // Setting subtests share per-setting coderdtest instances.
(t *testing.T)
| 11253 | |
| 11254 | //nolint:tparallel,paralleltest // Setting subtests share per-setting coderdtest instances. |
| 11255 | func TestChatModelOverrides(t *testing.T) { |
| 11256 | t.Parallel() |
| 11257 | |
| 11258 | type overrideResponse struct { |
| 11259 | context codersdk.ChatModelOverrideContext |
| 11260 | modelConfigID string |
| 11261 | isMalformed bool |
| 11262 | } |
| 11263 | |
| 11264 | type settingTest struct { |
| 11265 | name string |
| 11266 | context codersdk.ChatModelOverrideContext |
| 11267 | dbGet func(context.Context, database.Store) (string, error) |
| 11268 | dbUpsert func(context.Context, database.Store, string) error |
| 11269 | } |
| 11270 | |
| 11271 | settingPath := func(overrideContext codersdk.ChatModelOverrideContext) string { |
| 11272 | return "/api/experimental/chats/config/model-override/" + string(overrideContext) |
| 11273 | } |
| 11274 | |
| 11275 | getOverride := func( |
| 11276 | ctx context.Context, |
| 11277 | client *codersdk.ExperimentalClient, |
| 11278 | overrideContext codersdk.ChatModelOverrideContext, |
| 11279 | ) (overrideResponse, error) { |
| 11280 | resp, err := client.GetChatModelOverride(ctx, overrideContext) |
| 11281 | if err != nil { |
| 11282 | return overrideResponse{}, err |
| 11283 | } |
| 11284 | return overrideResponse{ |
| 11285 | context: resp.Context, |
| 11286 | modelConfigID: resp.ModelConfigID, |
| 11287 | isMalformed: resp.IsMalformed, |
| 11288 | }, nil |
| 11289 | } |
| 11290 | |
| 11291 | putOverride := func( |
| 11292 | ctx context.Context, |
| 11293 | client *codersdk.ExperimentalClient, |
| 11294 | overrideContext codersdk.ChatModelOverrideContext, |
| 11295 | modelConfigID string, |
| 11296 | ) error { |
| 11297 | return client.UpdateChatModelOverride( |
| 11298 | ctx, |
| 11299 | overrideContext, |
| 11300 | codersdk.UpdateChatModelOverrideRequest{ModelConfigID: modelConfigID}, |
| 11301 | ) |
| 11302 | } |
| 11303 | |
| 11304 | settings := []settingTest{ |
| 11305 | { |
| 11306 | name: "General", |
| 11307 | context: codersdk.ChatModelOverrideContextGeneral, |
| 11308 | dbGet: func(ctx context.Context, db database.Store) (string, error) { |
| 11309 | return db.GetChatGeneralModelOverride(dbauthz.AsSystemRestricted(ctx)) |
| 11310 | }, |
| 11311 | dbUpsert: func(ctx context.Context, db database.Store, value string) error { |
| 11312 | return db.UpsertChatGeneralModelOverride(dbauthz.AsSystemRestricted(ctx), value) |
nothing calls this directly
no test coverage detected