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

Function TestChatDebugRetentionDays

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

Source from the content-addressed store, hash-verified

13242}
13243
13244func TestChatDebugRetentionDays(t *testing.T) {
13245 t.Parallel()
13246 ctx := testutil.Context(t, testutil.WaitLong)
13247
13248 adminClient := newChatClient(t)
13249 firstUser := coderdtest.CreateFirstUser(t, adminClient.Client)
13250 memberClientRaw, _ := coderdtest.CreateAnotherUser(t, adminClient.Client, firstUser.OrganizationID)
13251 memberClient := codersdk.NewExperimentalClient(memberClientRaw)
13252
13253 // Default value is DefaultChatDebugRetentionDays when nothing has
13254 // been configured.
13255 resp, err := adminClient.GetChatDebugRetentionDays(ctx)
13256 require.NoError(t, err, "get default")
13257 require.Equal(t, codersdk.DefaultChatDebugRetentionDays, resp.DebugRetentionDays, "default should match DefaultChatDebugRetentionDays")
13258
13259 // Admin can set debug retention days to 14.
13260 err = adminClient.UpdateChatDebugRetentionDays(ctx, codersdk.UpdateChatDebugRetentionDaysRequest{
13261 DebugRetentionDays: 14,
13262 })
13263 require.NoError(t, err, "admin set 14")
13264
13265 resp, err = adminClient.GetChatDebugRetentionDays(ctx)
13266 require.NoError(t, err, "get after set")
13267 require.Equal(t, int32(14), resp.DebugRetentionDays, "should return 14")
13268
13269 // Non-admin member can read the value.
13270 memberResp, err := memberClient.GetChatDebugRetentionDays(ctx)
13271 require.NoError(t, err, "member read")
13272 require.Equal(t, int32(14), memberResp.DebugRetentionDays, "member sees same value")
13273
13274 // Non-admin member cannot write.
13275 err = memberClient.UpdateChatDebugRetentionDays(ctx, codersdk.UpdateChatDebugRetentionDaysRequest{DebugRetentionDays: 7})
13276 requireSDKError(t, err, http.StatusForbidden)
13277
13278 // Admin can disable chat debug retention purge by setting 0.
13279 err = adminClient.UpdateChatDebugRetentionDays(ctx, codersdk.UpdateChatDebugRetentionDaysRequest{
13280 DebugRetentionDays: 0,
13281 })
13282 require.NoError(t, err, "admin set 0")
13283
13284 resp, err = adminClient.GetChatDebugRetentionDays(ctx)
13285 require.NoError(t, err, "get after zero")
13286 require.Equal(t, int32(0), resp.DebugRetentionDays, "should be 0 after disable")
13287
13288 // Validation: negative value is rejected.
13289 err = adminClient.UpdateChatDebugRetentionDays(ctx, codersdk.UpdateChatDebugRetentionDaysRequest{
13290 DebugRetentionDays: -1,
13291 })
13292 requireSDKError(t, err, http.StatusBadRequest)
13293
13294 // Validation: exceeding the 3650-day maximum is rejected.
13295 err = adminClient.UpdateChatDebugRetentionDays(ctx, codersdk.UpdateChatDebugRetentionDaysRequest{
13296 DebugRetentionDays: 3651, // chatDebugRetentionDaysMaximum + 1; keep in sync with coderd/exp_chats.go.
13297 })
13298 requireSDKError(t, err, http.StatusBadRequest)
13299}
13300
13301func TestChatAutoArchiveDays(t *testing.T) {

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