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

Function TestChatRetentionDays

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

Source from the content-addressed store, hash-verified

13186}
13187
13188func TestChatRetentionDays(t *testing.T) {
13189 t.Parallel()
13190 ctx := testutil.Context(t, testutil.WaitLong)
13191
13192 adminClient := newChatClient(t)
13193 firstUser := coderdtest.CreateFirstUser(t, adminClient.Client)
13194 memberClientRaw, _ := coderdtest.CreateAnotherUser(t, adminClient.Client, firstUser.OrganizationID)
13195 memberClient := codersdk.NewExperimentalClient(memberClientRaw)
13196
13197 // Default value is 30 (days) when nothing has been configured.
13198 resp, err := adminClient.GetChatRetentionDays(ctx)
13199 require.NoError(t, err, "get default")
13200 require.Equal(t, int32(30), resp.RetentionDays, "default should be 30")
13201
13202 // Admin can set retention days to 90.
13203 err = adminClient.UpdateChatRetentionDays(ctx, codersdk.UpdateChatRetentionDaysRequest{
13204 RetentionDays: 90,
13205 })
13206 require.NoError(t, err, "admin set 90")
13207
13208 resp, err = adminClient.GetChatRetentionDays(ctx)
13209 require.NoError(t, err, "get after set")
13210 require.Equal(t, int32(90), resp.RetentionDays, "should return 90")
13211
13212 // Non-admin member can read the value.
13213 resp, err = memberClient.GetChatRetentionDays(ctx)
13214 require.NoError(t, err, "member get")
13215 require.Equal(t, int32(90), resp.RetentionDays, "member should see same value")
13216
13217 // Non-admin member cannot write.
13218 err = memberClient.UpdateChatRetentionDays(ctx, codersdk.UpdateChatRetentionDaysRequest{RetentionDays: 7})
13219 requireSDKError(t, err, http.StatusForbidden)
13220
13221 // Admin can disable purge by setting 0.
13222 err = adminClient.UpdateChatRetentionDays(ctx, codersdk.UpdateChatRetentionDaysRequest{
13223 RetentionDays: 0,
13224 })
13225 require.NoError(t, err, "admin set 0")
13226
13227 resp, err = adminClient.GetChatRetentionDays(ctx)
13228 require.NoError(t, err, "get after zero")
13229 require.Equal(t, int32(0), resp.RetentionDays, "should be 0 after disable")
13230
13231 // Validation: negative value is rejected.
13232 err = adminClient.UpdateChatRetentionDays(ctx, codersdk.UpdateChatRetentionDaysRequest{
13233 RetentionDays: -1,
13234 })
13235 requireSDKError(t, err, http.StatusBadRequest)
13236
13237 // Validation: exceeding the 3650-day maximum is rejected.
13238 err = adminClient.UpdateChatRetentionDays(ctx, codersdk.UpdateChatRetentionDaysRequest{
13239 RetentionDays: 3651, // retentionDaysMaximum + 1; keep in sync with coderd/exp_chats.go.
13240 })
13241 requireSDKError(t, err, http.StatusBadRequest)
13242}
13243
13244func TestChatDebugRetentionDays(t *testing.T) {
13245 t.Parallel()

Callers

nothing calls this directly

Calls 10

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

Tested by

no test coverage detected