test: add unit test helper to create templates in second organizations (#13628)

* chore: add coderdtest helpers
This commit is contained in:
Steven Masley
2024-06-24 12:55:57 -05:00
committed by GitHub
parent e4333c0433
commit 34c67e8428
3 changed files with 162 additions and 0 deletions
+51
View File
@@ -717,6 +717,57 @@ func TestTemplates(t *testing.T) {
_, err = owner.Template(ctx, template.ID)
require.NoError(t, err)
})
// Create a template in a second organization via custom role
t.Run("SecondOrganization", func(t *testing.T) {
t.Parallel()
dv := coderdtest.DeploymentValues(t)
dv.Experiments = []string{string(codersdk.ExperimentCustomRoles)}
ownerClient, _ := coderdenttest.New(t, &coderdenttest.Options{
Options: &coderdtest.Options{
DeploymentValues: dv,
IncludeProvisionerDaemon: false,
},
LicenseOptions: &coderdenttest.LicenseOptions{
Features: license.Features{
codersdk.FeatureAccessControl: 1,
codersdk.FeatureCustomRoles: 1,
codersdk.FeatureExternalProvisionerDaemons: 1,
},
},
})
ctx := testutil.Context(t, testutil.WaitMedium)
secondOrg := coderdtest.CreateOrganization(t, ownerClient, coderdtest.CreateOrganizationOptions{
IncludeProvisionerDaemon: true,
})
//nolint:gocritic // owner required to make custom roles
orgTemplateAdminRole, err := ownerClient.PatchOrganizationRole(ctx, secondOrg.ID, codersdk.Role{
Name: "org-template-admin",
OrganizationID: secondOrg.ID.String(),
OrganizationPermissions: codersdk.CreatePermissions(map[codersdk.RBACResource][]codersdk.RBACAction{
codersdk.ResourceTemplate: codersdk.RBACResourceActions[codersdk.ResourceTemplate],
}),
})
require.NoError(t, err, "create admin role")
orgTemplateAdmin, _ := coderdtest.CreateAnotherUser(t, ownerClient, secondOrg.ID, rbac.RoleIdentifier{
Name: orgTemplateAdminRole.Name,
OrganizationID: secondOrg.ID,
})
version := coderdtest.CreateTemplateVersion(t, orgTemplateAdmin, secondOrg.ID, &echo.Responses{
Parse: echo.ParseComplete,
ProvisionApply: echo.ApplyComplete,
ProvisionPlan: echo.PlanComplete,
})
coderdtest.AwaitTemplateVersionJobCompleted(t, orgTemplateAdmin, version.ID)
template := coderdtest.CreateTemplate(t, orgTemplateAdmin, secondOrg.ID, version.ID)
require.Equal(t, template.OrganizationID, secondOrg.ID)
})
}
func TestTemplateACL(t *testing.T) {