Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 141c890

Browse files
test: add tests
1 parent 14167c4 commit 141c890

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

coderd/workspaces_test.go

+83
Original file line numberDiff line numberDiff line change
@@ -2394,6 +2394,89 @@ func TestWorkspaceUpdateTTL(t *testing.T) {
23942394
})
23952395
}
23962396

2397+
t.Run("ModifyAutostopWithRunningWorkspace", func(t *testing.T) {
2398+
testCases := []struct {
2399+
name string
2400+
fromTTL *int64
2401+
toTTL *int64
2402+
afterUpdate func(t *testing.T, before, after codersdk.NullTime)
2403+
}{
2404+
{
2405+
name: "RemoveAutostopRemovesDeadline",
2406+
fromTTL: ptr.Ref((8 * time.Hour).Milliseconds()),
2407+
toTTL: nil,
2408+
afterUpdate: func(t *testing.T, before, after codersdk.NullTime) {
2409+
require.NotZero(t, before)
2410+
require.Zero(t, after)
2411+
},
2412+
},
2413+
{
2414+
name: "AddAutostopDoesNotAddDeadline",
2415+
fromTTL: nil,
2416+
toTTL: ptr.Ref((8 * time.Hour).Milliseconds()),
2417+
afterUpdate: func(t *testing.T, before, after codersdk.NullTime) {
2418+
require.Zero(t, before)
2419+
require.Zero(t, after)
2420+
},
2421+
},
2422+
{
2423+
name: "IncreaseAutostopDoesNotModifyDeadline",
2424+
fromTTL: ptr.Ref((4 * time.Hour).Milliseconds()),
2425+
toTTL: ptr.Ref((8 * time.Hour).Milliseconds()),
2426+
afterUpdate: func(t *testing.T, before, after codersdk.NullTime) {
2427+
require.NotZero(t, before)
2428+
require.NotZero(t, after)
2429+
require.Equal(t, before, after)
2430+
},
2431+
},
2432+
{
2433+
name: "DecreaseAutostopDoesNotModifyDeadline",
2434+
fromTTL: ptr.Ref((8 * time.Hour).Milliseconds()),
2435+
toTTL: ptr.Ref((4 * time.Hour).Milliseconds()),
2436+
afterUpdate: func(t *testing.T, before, after codersdk.NullTime) {
2437+
require.NotZero(t, before)
2438+
require.NotZero(t, after)
2439+
require.Equal(t, before, after)
2440+
},
2441+
},
2442+
}
2443+
2444+
for _, testCase := range testCases {
2445+
testCase := testCase
2446+
2447+
t.Run(testCase.name, func(t *testing.T) {
2448+
var (
2449+
client = coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
2450+
user = coderdtest.CreateFirstUser(t, client)
2451+
version = coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
2452+
_ = coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
2453+
template = coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
2454+
workspace = coderdtest.CreateWorkspace(t, client, template.ID, func(cwr *codersdk.CreateWorkspaceRequest) {
2455+
cwr.TTLMillis = testCase.fromTTL
2456+
})
2457+
build = coderdtest.AwaitWorkspaceBuildJobCompleted(t, client, workspace.LatestBuild.ID)
2458+
)
2459+
2460+
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
2461+
defer cancel()
2462+
2463+
err := client.UpdateWorkspaceTTL(ctx, workspace.ID, codersdk.UpdateWorkspaceTTLRequest{
2464+
TTLMillis: testCase.toTTL,
2465+
})
2466+
require.NoError(t, err)
2467+
2468+
deadlineBefore := build.Deadline
2469+
2470+
build, err = client.WorkspaceBuild(ctx, build.ID)
2471+
require.NoError(t, err)
2472+
2473+
deadlineAfter := build.Deadline
2474+
2475+
testCase.afterUpdate(t, deadlineBefore, deadlineAfter)
2476+
})
2477+
}
2478+
})
2479+
23972480
t.Run("CustomAutostopDisabledByTemplate", func(t *testing.T) {
23982481
t.Parallel()
23992482
var (

0 commit comments

Comments
 (0)