mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
test: add unit test helper to create templates in second organizations (#13628)
* chore: add coderdtest helpers
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user