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

Function TestDeleteTemplate

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

Source from the content-addressed store, hash-verified

1837}
1838
1839func TestDeleteTemplate(t *testing.T) {
1840 t.Parallel()
1841
1842 t.Run("NoWorkspaces", func(t *testing.T) {
1843 t.Parallel()
1844 auditor := audit.NewMock()
1845 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true, Auditor: auditor})
1846 user := coderdtest.CreateFirstUser(t, client)
1847 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
1848 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
1849 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
1850
1851 ctx := testutil.Context(t, testutil.WaitLong)
1852
1853 err := client.DeleteTemplate(ctx, template.ID)
1854 require.NoError(t, err)
1855
1856 require.Len(t, auditor.AuditLogs(), 5)
1857 assert.Equal(t, database.AuditActionDelete, auditor.AuditLogs()[4].Action)
1858 })
1859
1860 t.Run("Workspaces", func(t *testing.T) {
1861 t.Parallel()
1862 client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
1863 user := coderdtest.CreateFirstUser(t, client)
1864 version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil)
1865 template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID)
1866 coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID)
1867 coderdtest.CreateWorkspace(t, client, template.ID)
1868
1869 ctx := testutil.Context(t, testutil.WaitLong)
1870
1871 err := client.DeleteTemplate(ctx, template.ID)
1872 var apiErr *codersdk.Error
1873 require.ErrorAs(t, err, &apiErr)
1874 require.Equal(t, http.StatusBadRequest, apiErr.StatusCode())
1875 })
1876
1877 t.Run("NoPermission", func(t *testing.T) {
1878 t.Parallel()
1879 client, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{IncludeProvisionerDaemon: true})
1880 owner := coderdtest.CreateFirstUser(t, client)
1881 memberClient, _ := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID)
1882 tpl := dbfake.TemplateVersion(t, db).Seed(database.TemplateVersion{CreatedBy: owner.UserID, OrganizationID: owner.OrganizationID}).Do()
1883
1884 ctx := testutil.Context(t, testutil.WaitShort)
1885 err := memberClient.DeleteTemplate(ctx, tpl.Template.ID)
1886 var apiErr *codersdk.Error
1887 require.ErrorAs(t, err, &apiErr)
1888 require.Equal(t, http.StatusForbidden, apiErr.StatusCode())
1889 })
1890
1891 t.Run("OnlyPrebuilds", func(t *testing.T) {
1892 t.Parallel()
1893 client, db := coderdtest.NewWithDatabase(t, nil)
1894 owner := coderdtest.CreateFirstUser(t, client)
1895 tpl := dbfake.TemplateVersion(t, db).
1896 Seed(database.TemplateVersion{

Callers

nothing calls this directly

Calls 15

StatusCodeMethod · 0.95
NewMockFunction · 0.92
NewFunction · 0.92
CreateFirstUserFunction · 0.92
CreateTemplateVersionFunction · 0.92
CreateTemplateFunction · 0.92
ContextFunction · 0.92
CreateWorkspaceFunction · 0.92
NewWithDatabaseFunction · 0.92
CreateAnotherUserFunction · 0.92
TemplateVersionFunction · 0.92

Tested by

no test coverage detected