(t *testing.T)
| 446 | } |
| 447 | |
| 448 | func TestTemplates(t *testing.T) { |
| 449 | t.Parallel() |
| 450 | |
| 451 | t.Run("ListEmpty", func(t *testing.T) { |
| 452 | t.Parallel() |
| 453 | client := coderdtest.New(t, nil) |
| 454 | _ = coderdtest.CreateFirstUser(t, client) |
| 455 | |
| 456 | ctx := testutil.Context(t, testutil.WaitLong) |
| 457 | |
| 458 | templates, err := client.Templates(ctx, codersdk.TemplateFilter{}) |
| 459 | require.NoError(t, err) |
| 460 | require.NotNil(t, templates) |
| 461 | require.Len(t, templates, 0) |
| 462 | }) |
| 463 | |
| 464 | // Should return only non-deprecated templates by default |
| 465 | t.Run("ListMultiple non-deprecated", func(t *testing.T) { |
| 466 | t.Parallel() |
| 467 | |
| 468 | owner, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{IncludeProvisionerDaemon: false}) |
| 469 | user := coderdtest.CreateFirstUser(t, owner) |
| 470 | client, tplAdmin := coderdtest.CreateAnotherUser(t, owner, user.OrganizationID, rbac.RoleTemplateAdmin()) |
| 471 | version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil) |
| 472 | version2 := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil) |
| 473 | foo := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID, func(request *codersdk.CreateTemplateRequest) { |
| 474 | request.Name = "foo" |
| 475 | }) |
| 476 | bar := coderdtest.CreateTemplate(t, client, user.OrganizationID, version2.ID, func(request *codersdk.CreateTemplateRequest) { |
| 477 | request.Name = "bar" |
| 478 | }) |
| 479 | |
| 480 | ctx := testutil.Context(t, testutil.WaitLong) |
| 481 | |
| 482 | // Deprecate bar template |
| 483 | deprecationMessage := "Some deprecated message" |
| 484 | err := db.UpdateTemplateAccessControlByID(dbauthz.As(ctx, coderdtest.AuthzUserSubject(tplAdmin)), database.UpdateTemplateAccessControlByIDParams{ |
| 485 | ID: bar.ID, |
| 486 | RequireActiveVersion: false, |
| 487 | Deprecated: deprecationMessage, |
| 488 | }) |
| 489 | require.NoError(t, err) |
| 490 | |
| 491 | updatedBar, err := client.Template(ctx, bar.ID) |
| 492 | require.NoError(t, err) |
| 493 | require.True(t, updatedBar.Deprecated) |
| 494 | require.Equal(t, deprecationMessage, updatedBar.DeprecationMessage) |
| 495 | |
| 496 | // Should return only the non-deprecated template (foo) |
| 497 | templates, err := client.Templates(ctx, codersdk.TemplateFilter{}) |
| 498 | require.NoError(t, err) |
| 499 | require.Len(t, templates, 1) |
| 500 | |
| 501 | require.Equal(t, foo.ID, templates[0].ID) |
| 502 | require.False(t, templates[0].Deprecated) |
| 503 | require.Empty(t, templates[0].DeprecationMessage) |
| 504 | }) |
| 505 |
nothing calls this directly
no test coverage detected