(t *testing.T)
| 3379 | } |
| 3380 | |
| 3381 | func TestWorkspaceUpdateTTL(t *testing.T) { |
| 3382 | t.Parallel() |
| 3383 | |
| 3384 | testCases := []struct { |
| 3385 | name string |
| 3386 | ttlMillis *int64 |
| 3387 | expectedError string |
| 3388 | modifyTemplate func(*codersdk.CreateTemplateRequest) |
| 3389 | }{ |
| 3390 | { |
| 3391 | name: "disable ttl", |
| 3392 | ttlMillis: nil, |
| 3393 | expectedError: "", |
| 3394 | modifyTemplate: func(ctr *codersdk.CreateTemplateRequest) { |
| 3395 | ctr.DefaultTTLMillis = ptr.Ref((8 * time.Hour).Milliseconds()) |
| 3396 | }, |
| 3397 | }, |
| 3398 | { |
| 3399 | name: "update ttl", |
| 3400 | ttlMillis: ptr.Ref(12 * time.Hour.Milliseconds()), |
| 3401 | expectedError: "", |
| 3402 | modifyTemplate: func(ctr *codersdk.CreateTemplateRequest) { |
| 3403 | ctr.DefaultTTLMillis = ptr.Ref((8 * time.Hour).Milliseconds()) |
| 3404 | }, |
| 3405 | }, |
| 3406 | { |
| 3407 | name: "below minimum ttl", |
| 3408 | ttlMillis: ptr.Ref((30 * time.Second).Milliseconds()), |
| 3409 | expectedError: "time until shutdown must be at least one minute", |
| 3410 | }, |
| 3411 | { |
| 3412 | name: "minimum ttl", |
| 3413 | ttlMillis: ptr.Ref(time.Minute.Milliseconds()), |
| 3414 | expectedError: "", |
| 3415 | }, |
| 3416 | { |
| 3417 | name: "maximum ttl", |
| 3418 | ttlMillis: ptr.Ref((24 * 30 * time.Hour).Milliseconds()), |
| 3419 | expectedError: "", |
| 3420 | }, |
| 3421 | { |
| 3422 | name: "above maximum ttl", |
| 3423 | ttlMillis: ptr.Ref((24*30*time.Hour + time.Minute).Milliseconds()), |
| 3424 | expectedError: "time until shutdown must be less than 30 days", |
| 3425 | }, |
| 3426 | } |
| 3427 | |
| 3428 | for _, testCase := range testCases { |
| 3429 | t.Run(testCase.name, func(t *testing.T) { |
| 3430 | t.Parallel() |
| 3431 | |
| 3432 | mutators := make([]func(*codersdk.CreateTemplateRequest), 0) |
| 3433 | if testCase.modifyTemplate != nil { |
| 3434 | mutators = append(mutators, testCase.modifyTemplate) |
| 3435 | } |
| 3436 | var ( |
| 3437 | auditor = audit.NewMock() |
| 3438 | client = coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true, Auditor: auditor}) |
nothing calls this directly
no test coverage detected