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

Function TestGroupAIBudget

enterprise/coderd/aibridge_test.go:2611–2872  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2609}
2610
2611func TestGroupAIBudget(t *testing.T) {
2612 t.Parallel()
2613
2614 t.Run("Upsert", func(t *testing.T) {
2615 t.Parallel()
2616
2617 adminClient, group := setupGroupAIBudgetTest(t)
2618 ctx := testutil.Context(t, testutil.WaitLong)
2619
2620 // First upsert creates the budget.
2621 newBudget, err := adminClient.UpsertGroupAIBudget(ctx, group.ID, codersdk.UpsertGroupAIBudgetRequest{
2622 SpendLimitMicros: 500_000_000,
2623 })
2624 require.NoError(t, err)
2625 require.Equal(t, group.ID, newBudget.GroupID)
2626 require.EqualValues(t, 500_000_000, newBudget.SpendLimitMicros)
2627
2628 // Second upsert updates the existing budget.
2629 updatedBudget, err := adminClient.UpsertGroupAIBudget(ctx, group.ID, codersdk.UpsertGroupAIBudgetRequest{
2630 SpendLimitMicros: 1_000_000_000,
2631 })
2632 require.NoError(t, err)
2633 require.EqualValues(t, 1_000_000_000, updatedBudget.SpendLimitMicros)
2634
2635 // GET returns the latest value.
2636 currentBudget, err := adminClient.GroupAIBudget(ctx, group.ID)
2637 require.NoError(t, err)
2638 require.EqualValues(t, 1_000_000_000, currentBudget.SpendLimitMicros)
2639 })
2640
2641 t.Run("GetWhenAbsent_404", func(t *testing.T) {
2642 t.Parallel()
2643
2644 adminClient, group := setupGroupAIBudgetTest(t)
2645 ctx := testutil.Context(t, testutil.WaitLong)
2646
2647 _, err := adminClient.GroupAIBudget(ctx, group.ID)
2648 var sdkErr *codersdk.Error
2649 require.ErrorAs(t, err, &sdkErr)
2650 require.Equal(t, http.StatusNotFound, sdkErr.StatusCode())
2651 })
2652
2653 t.Run("DeleteWhenAbsent_404", func(t *testing.T) {
2654 t.Parallel()
2655
2656 adminClient, group := setupGroupAIBudgetTest(t)
2657 ctx := testutil.Context(t, testutil.WaitLong)
2658
2659 err := adminClient.DeleteGroupAIBudget(ctx, group.ID)
2660 var sdkErr *codersdk.Error
2661 require.ErrorAs(t, err, &sdkErr)
2662 require.Equal(t, http.StatusNotFound, sdkErr.StatusCode())
2663 })
2664
2665 t.Run("DeleteWhenPresent", func(t *testing.T) {
2666 t.Parallel()
2667
2668 adminClient, group := setupGroupAIBudgetTest(t)

Callers

nothing calls this directly

Calls 15

StatusCodeMethod · 0.95
ContextFunction · 0.92
DeploymentValuesFunction · 0.92
NewFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleUserAdminFunction · 0.92
NewDBFunction · 0.92
NewPostgresFunction · 0.92
setupGroupAIBudgetTestFunction · 0.85
GroupAIBudgetMethod · 0.80
CreateGroupMethod · 0.80
PatchGroupMethod · 0.80

Tested by

no test coverage detected