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

Function TestTemplates

coderd/templates_test.go:448–690  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

446}
447
448func 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

Callers

nothing calls this directly

Calls 15

NewFunction · 0.92
CreateFirstUserFunction · 0.92
ContextFunction · 0.92
NewWithDatabaseFunction · 0.92
CreateAnotherUserFunction · 0.92
RoleTemplateAdminFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
AsFunction · 0.92
AuthzUserSubjectFunction · 0.92
TemplatesMethod · 0.80
TemplateMethod · 0.80

Tested by

no test coverage detected