(t *testing.T)
| 3794 | } |
| 3795 | |
| 3796 | func TestUpdateChatModelConfig(t *testing.T) { |
| 3797 | t.Parallel() |
| 3798 | |
| 3799 | t.Run("Success", func(t *testing.T) { |
| 3800 | t.Parallel() |
| 3801 | |
| 3802 | ctx := testutil.Context(t, testutil.WaitLong) |
| 3803 | client := newChatClient(t) |
| 3804 | _ = coderdtest.CreateFirstUser(t, client.Client) |
| 3805 | modelConfig := createChatModelConfig(t, client) |
| 3806 | |
| 3807 | contextLimit := int64(8192) |
| 3808 | pricing := &codersdk.ChatModelCallConfig{ |
| 3809 | Cost: &codersdk.ModelCostConfig{ |
| 3810 | InputPricePerMillionTokens: decRef("0.2"), |
| 3811 | OutputPricePerMillionTokens: decRef("0.8"), |
| 3812 | CacheReadPricePerMillionTokens: decRef("0.04"), |
| 3813 | CacheWritePricePerMillionTokens: decRef("0.4"), |
| 3814 | }, |
| 3815 | } |
| 3816 | updated, err := client.UpdateChatModelConfig(ctx, modelConfig.ID, codersdk.UpdateChatModelConfigRequest{ |
| 3817 | DisplayName: "GPT-4o Mini Updated", |
| 3818 | ContextLimit: &contextLimit, |
| 3819 | ModelConfig: pricing, |
| 3820 | }) |
| 3821 | require.NoError(t, err) |
| 3822 | require.Equal(t, modelConfig.ID, updated.ID) |
| 3823 | require.Equal(t, "GPT-4o Mini Updated", updated.DisplayName) |
| 3824 | require.EqualValues(t, 8192, updated.ContextLimit) |
| 3825 | requireChatModelPricing(t, updated.ModelConfig, pricing) |
| 3826 | |
| 3827 | configs, err := client.ListChatModelConfigs(ctx) |
| 3828 | require.NoError(t, err) |
| 3829 | require.Len(t, configs, 1) |
| 3830 | requireChatModelPricing(t, configs[0].ModelConfig, pricing) |
| 3831 | }) |
| 3832 | |
| 3833 | t.Run("UnchangedProviderWithoutAIProviderID", func(t *testing.T) { |
| 3834 | t.Parallel() |
| 3835 | |
| 3836 | ctx := testutil.Context(t, testutil.WaitLong) |
| 3837 | client := newChatClient(t) |
| 3838 | _ = coderdtest.CreateFirstUser(t, client.Client) |
| 3839 | modelConfig := createChatModelConfig(t, client) |
| 3840 | |
| 3841 | updated, err := client.UpdateChatModelConfig(ctx, modelConfig.ID, codersdk.UpdateChatModelConfigRequest{ |
| 3842 | Provider: modelConfig.Provider, |
| 3843 | Model: "gpt-4o-mini-updated", |
| 3844 | }) |
| 3845 | require.NoError(t, err) |
| 3846 | require.Equal(t, modelConfig.ID, updated.ID) |
| 3847 | require.Equal(t, modelConfig.Provider, updated.Provider) |
| 3848 | require.NotNil(t, updated.AIProviderID) |
| 3849 | require.Equal(t, *modelConfig.AIProviderID, *updated.AIProviderID) |
| 3850 | require.Equal(t, "gpt-4o-mini-updated", updated.Model) |
| 3851 | }) |
| 3852 | |
| 3853 | t.Run("RejectsOpenRouterMisconfiguredAsOpenAI", func(t *testing.T) { |
nothing calls this directly
no test coverage detected