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

Function TestChatAutoArchiveDays

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

Source from the content-addressed store, hash-verified

13299}
13300
13301func TestChatAutoArchiveDays(t *testing.T) {
13302 t.Parallel()
13303 ctx := testutil.Context(t, testutil.WaitLong)
13304
13305 adminClient := newChatClient(t)
13306 firstUser := coderdtest.CreateFirstUser(t, adminClient.Client)
13307 memberClientRaw, _ := coderdtest.CreateAnotherUser(t, adminClient.Client, firstUser.OrganizationID)
13308 memberClient := codersdk.NewExperimentalClient(memberClientRaw)
13309
13310 // Default value is DefaultChatAutoArchiveDays (0, disabled) when
13311 // nothing has been configured.
13312 resp, err := adminClient.GetChatAutoArchiveDays(ctx)
13313 require.NoError(t, err, "get default")
13314 require.Equal(t, codersdk.DefaultChatAutoArchiveDays, resp.AutoArchiveDays, "default should match DefaultChatAutoArchiveDays")
13315
13316 // Admin can set auto-archive days to 45.
13317 err = adminClient.UpdateChatAutoArchiveDays(ctx, codersdk.UpdateChatAutoArchiveDaysRequest{
13318 AutoArchiveDays: 45,
13319 })
13320 require.NoError(t, err, "admin set 45")
13321
13322 resp, err = adminClient.GetChatAutoArchiveDays(ctx)
13323 require.NoError(t, err, "get after set")
13324 require.Equal(t, int32(45), resp.AutoArchiveDays, "should return 45")
13325
13326 // Non-admin member can read the value (same as retention days).
13327 memberResp, err := memberClient.GetChatAutoArchiveDays(ctx)
13328 require.NoError(t, err, "member read")
13329 require.Equal(t, int32(45), memberResp.AutoArchiveDays, "member sees same value")
13330
13331 // Non-admin member cannot write.
13332 err = memberClient.UpdateChatAutoArchiveDays(ctx, codersdk.UpdateChatAutoArchiveDaysRequest{AutoArchiveDays: 7})
13333 requireSDKError(t, err, http.StatusForbidden)
13334
13335 // Admin can disable auto-archive by setting 0.
13336 err = adminClient.UpdateChatAutoArchiveDays(ctx, codersdk.UpdateChatAutoArchiveDaysRequest{
13337 AutoArchiveDays: 0,
13338 })
13339 require.NoError(t, err, "admin set 0")
13340
13341 resp, err = adminClient.GetChatAutoArchiveDays(ctx)
13342 require.NoError(t, err, "get after zero")
13343 require.Equal(t, int32(0), resp.AutoArchiveDays, "should be 0 after disable")
13344
13345 // An aggressive value of 1 is accepted (no pre-warn to break).
13346 err = adminClient.UpdateChatAutoArchiveDays(ctx, codersdk.UpdateChatAutoArchiveDaysRequest{
13347 AutoArchiveDays: 1,
13348 })
13349 require.NoError(t, err, "admin set 1")
13350
13351 // Validation: negative value is rejected.
13352 err = adminClient.UpdateChatAutoArchiveDays(ctx, codersdk.UpdateChatAutoArchiveDaysRequest{
13353 AutoArchiveDays: -1,
13354 })
13355 requireSDKError(t, err, http.StatusBadRequest)
13356
13357 // Validation: exceeding the 3650-day maximum is rejected.
13358 err = adminClient.UpdateChatAutoArchiveDays(ctx, codersdk.UpdateChatAutoArchiveDaysRequest{

Callers

nothing calls this directly

Calls 10

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

Tested by

no test coverage detected