MCPcopy Index your code
hub / github.com/coder/coder / TestCreateChatModelConfig

Function TestCreateChatModelConfig

coderd/exp_chats_test.go:3552–3794  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3550}
3551
3552func TestCreateChatModelConfig(t *testing.T) {
3553 t.Parallel()
3554
3555 t.Run("Success", func(t *testing.T) {
3556 t.Parallel()
3557
3558 ctx := testutil.Context(t, testutil.WaitLong)
3559 client := newChatClient(t)
3560 _ = coderdtest.CreateFirstUser(t, client.Client)
3561
3562 aiProvider := createAIProviderForTest(t, client, "openai", "test-api-key")
3563
3564 contextLimit := int64(4096)
3565 isDefault := true
3566 pricing := &codersdk.ChatModelCallConfig{
3567 Cost: &codersdk.ModelCostConfig{
3568 InputPricePerMillionTokens: decRef("0.15"),
3569 OutputPricePerMillionTokens: decRef("0.6"),
3570 CacheReadPricePerMillionTokens: decRef("0.03"),
3571 CacheWritePricePerMillionTokens: decRef("0.3"),
3572 },
3573 }
3574 modelConfig, err := client.CreateChatModelConfig(ctx, codersdk.CreateChatModelConfigRequest{
3575 Provider: "openai",
3576 AIProviderID: &aiProvider.ID,
3577 Model: "gpt-4o-mini",
3578 ContextLimit: &contextLimit,
3579 IsDefault: &isDefault,
3580 ModelConfig: pricing,
3581 })
3582 require.NoError(t, err)
3583 require.NotEqual(t, uuid.Nil, modelConfig.ID)
3584 require.Equal(t, "openai", modelConfig.Provider)
3585 require.Equal(t, "gpt-4o-mini", modelConfig.Model)
3586 require.EqualValues(t, 4096, modelConfig.ContextLimit)
3587 require.True(t, modelConfig.IsDefault)
3588 requireChatModelPricing(t, modelConfig.ModelConfig, pricing)
3589
3590 configs, err := client.ListChatModelConfigs(ctx)
3591 require.NoError(t, err)
3592 require.Len(t, configs, 1)
3593 requireChatModelPricing(t, configs[0].ModelConfig, pricing)
3594 })
3595
3596 t.Run("RejectsNegativePricing", func(t *testing.T) {
3597 t.Parallel()
3598
3599 ctx := testutil.Context(t, testutil.WaitLong)
3600 client := newChatClient(t)
3601 _ = coderdtest.CreateFirstUser(t, client.Client)
3602
3603 aiProvider := createAIProviderForTest(t, client, "openai", "test-api-key")
3604
3605 contextLimit := int64(4096)
3606 _, err := client.CreateChatModelConfig(ctx, codersdk.CreateChatModelConfigRequest{
3607 Provider: "openai",
3608 AIProviderID: &aiProvider.ID,
3609 Model: "gpt-4o-mini",

Callers

nothing calls this directly

Calls 15

CreateChatModelConfigMethod · 0.95
ContextFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
NewExperimentalClientFunction · 0.92
createAIProviderForTestFunction · 0.85
decRefFunction · 0.85
requireChatModelPricingFunction · 0.85
requireSDKErrorFunction · 0.85
ListChatModelConfigsMethod · 0.80
CreateAIProviderMethod · 0.80
newChatClientFunction · 0.70

Tested by

no test coverage detected