(t *testing.T)
| 1065 | } |
| 1066 | |
| 1067 | func TestPostWorkspacesByOrganization(t *testing.T) { |
| 1068 | t.Parallel() |
| 1069 | t.Run("InvalidTemplate", func(t *testing.T) { |
| 1070 | t.Parallel() |
| 1071 | client := coderdtest.New(t, nil) |
| 1072 | user := coderdtest.CreateFirstUser(t, client) |
| 1073 | |
| 1074 | ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) |
| 1075 | defer cancel() |
| 1076 | |
| 1077 | _, err := client.CreateWorkspace(ctx, user.OrganizationID, codersdk.Me, codersdk.CreateWorkspaceRequest{ |
| 1078 | TemplateID: uuid.New(), |
| 1079 | Name: "workspace", |
| 1080 | }) |
| 1081 | require.Error(t, err) |
| 1082 | var apiErr *codersdk.Error |
| 1083 | require.ErrorAs(t, err, &apiErr) |
| 1084 | require.Equal(t, http.StatusBadRequest, apiErr.StatusCode()) |
| 1085 | }) |
| 1086 | |
| 1087 | t.Run("AlreadyExists", func(t *testing.T) { |
| 1088 | t.Parallel() |
| 1089 | client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true}) |
| 1090 | user := coderdtest.CreateFirstUser(t, client) |
| 1091 | version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, nil) |
| 1092 | template := coderdtest.CreateTemplate(t, client, user.OrganizationID, version.ID) |
| 1093 | coderdtest.AwaitTemplateVersionJobCompleted(t, client, version.ID) |
| 1094 | workspace := coderdtest.CreateWorkspace(t, client, template.ID) |
| 1095 | |
| 1096 | ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) |
| 1097 | defer cancel() |
| 1098 | |
| 1099 | _, err := client.CreateWorkspace(ctx, user.OrganizationID, codersdk.Me, codersdk.CreateWorkspaceRequest{ |
| 1100 | TemplateID: template.ID, |
| 1101 | Name: workspace.Name, |
| 1102 | }) |
| 1103 | require.Error(t, err) |
| 1104 | var apiErr *codersdk.Error |
| 1105 | require.ErrorAs(t, err, &apiErr) |
| 1106 | require.Equal(t, http.StatusConflict, apiErr.StatusCode()) |
| 1107 | }) |
| 1108 | |
| 1109 | t.Run("CreateSendsNotification", func(t *testing.T) { |
| 1110 | t.Parallel() |
| 1111 | |
| 1112 | enqueuer := notificationstest.FakeEnqueuer{} |
| 1113 | client := coderdtest.New(t, &coderdtest.Options{IncludeProvisionerDaemon: true, NotificationsEnqueuer: &enqueuer}) |
| 1114 | user := coderdtest.CreateFirstUser(t, client) |
| 1115 | templateAdminClient, templateAdmin := coderdtest.CreateAnotherUser(t, client, user.OrganizationID, rbac.RoleTemplateAdmin()) |
| 1116 | memberClient, memberUser := coderdtest.CreateAnotherUser(t, client, user.OrganizationID) |
| 1117 | |
| 1118 | version := coderdtest.CreateTemplateVersion(t, templateAdminClient, user.OrganizationID, nil) |
| 1119 | template := coderdtest.CreateTemplate(t, templateAdminClient, user.OrganizationID, version.ID) |
| 1120 | coderdtest.AwaitTemplateVersionJobCompleted(t, templateAdminClient, version.ID) |
| 1121 | |
| 1122 | workspace := coderdtest.CreateWorkspace(t, memberClient, template.ID) |
| 1123 | coderdtest.AwaitWorkspaceBuildJobCompleted(t, memberClient, workspace.LatestBuild.ID) |
| 1124 |
nothing calls this directly
no test coverage detected