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

Function TestChatAdvisorConfig_MemberCannotWriteButCanRead

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

Source from the content-addressed store, hash-verified

12809}
12810
12811func TestChatAdvisorConfig_MemberCannotWriteButCanRead(t *testing.T) {
12812 t.Parallel()
12813
12814 ctx := testutil.Context(t, testutil.WaitLong)
12815 adminClient := newChatClient(t)
12816 firstUser := coderdtest.CreateFirstUser(t, adminClient.Client)
12817 memberClientRaw, _ := coderdtest.CreateAnotherUser(t, adminClient.Client, firstUser.OrganizationID)
12818 memberClient := codersdk.NewExperimentalClient(memberClientRaw)
12819
12820 want := codersdk.AdvisorConfig{
12821 Enabled: true,
12822 MaxUsesPerRun: 2,
12823 MaxOutputTokens: 256,
12824 }
12825
12826 err := adminClient.UpdateChatAdvisorConfig(ctx, want)
12827 require.NoError(t, err)
12828
12829 resp, err := adminClient.GetChatAdvisorConfig(ctx)
12830 require.NoError(t, err)
12831 require.Equal(t, want, resp)
12832
12833 err = memberClient.UpdateChatAdvisorConfig(ctx, codersdk.UpdateAdvisorConfigRequest{
12834 Enabled: true,
12835 })
12836 requireSDKError(t, err, http.StatusForbidden)
12837
12838 // Members must still be able to read the advisor config: the dbauthz
12839 // layer only requires an authenticated actor, and the GET handler has
12840 // no RBAC check because the admin settings UI and chatd runtime are
12841 // the planned consumers. This assertion pins that behavior so a
12842 // future RBAC tightening is a deliberate change.
12843 memberResp, err := memberClient.GetChatAdvisorConfig(ctx)
12844 require.NoError(t, err)
12845 require.Equal(t, want, memberResp)
12846
12847 resp, err = adminClient.GetChatAdvisorConfig(ctx)
12848 require.NoError(t, err)
12849 require.Equal(t, want, resp)
12850}
12851
12852func TestChatAdvisorConfig_NegativeMaxUsesPerRunRejected(t *testing.T) {
12853 t.Parallel()

Callers

nothing calls this directly

Calls 10

GetChatAdvisorConfigMethod · 0.95
ContextFunction · 0.92
CreateFirstUserFunction · 0.92
CreateAnotherUserFunction · 0.92
NewExperimentalClientFunction · 0.92
requireSDKErrorFunction · 0.85
newChatClientFunction · 0.70
GetChatAdvisorConfigMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected