@@ -5,328 +5,83 @@ import (
5
5
"net/http"
6
6
"testing"
7
7
8
- "github.com/google/uuid"
9
8
"github.com/stretchr/testify/require"
10
9
11
10
"github.com/coder/coder/coderd/coderdtest"
12
- "github.com/coder/coder/coderd/database"
13
11
"github.com/coder/coder/codersdk"
14
- "github.com/coder/coder/provisioner/echo"
15
12
)
16
13
17
- func TestProvisionerDaemonsByOrganization (t * testing.T ) {
14
+ func TestOrganizationsByUser (t * testing.T ) {
18
15
t .Parallel ()
19
- t .Run ("NoAuth" ,func (t * testing.T ) {
20
- t .Parallel ()
21
- client := coderdtest .New (t ,nil )
22
- _ ,err := client .ProvisionerDaemonsByOrganization (context .Background (),uuid .New ())
23
- require .Error (t ,err )
24
- })
25
-
26
- t .Run ("Get" ,func (t * testing.T ) {
27
- t .Parallel ()
28
- client := coderdtest .New (t ,nil )
29
- user := coderdtest .CreateFirstUser (t ,client )
30
- _ ,err := client .ProvisionerDaemonsByOrganization (context .Background (),user .OrganizationID )
31
- require .NoError (t ,err )
32
- })
33
- }
34
-
35
- func TestPostTemplateVersionsByOrganization (t * testing.T ) {
36
- t .Parallel ()
37
- t .Run ("InvalidTemplate" ,func (t * testing.T ) {
38
- t .Parallel ()
39
- client := coderdtest .New (t ,nil )
40
- user := coderdtest .CreateFirstUser (t ,client )
41
- templateID := uuid .New ()
42
- _ ,err := client .CreateTemplateVersion (context .Background (),user .OrganizationID , codersdk.CreateTemplateVersionRequest {
43
- TemplateID :templateID ,
44
- StorageMethod :database .ProvisionerStorageMethodFile ,
45
- StorageSource :"hash" ,
46
- Provisioner :database .ProvisionerTypeEcho ,
47
- })
48
- var apiErr * codersdk.Error
49
- require .ErrorAs (t ,err ,& apiErr )
50
- require .Equal (t ,http .StatusNotFound ,apiErr .StatusCode ())
51
- })
52
-
53
- t .Run ("FileNotFound" ,func (t * testing.T ) {
54
- t .Parallel ()
55
- client := coderdtest .New (t ,nil )
56
- user := coderdtest .CreateFirstUser (t ,client )
57
- _ ,err := client .CreateTemplateVersion (context .Background (),user .OrganizationID , codersdk.CreateTemplateVersionRequest {
58
- StorageMethod :database .ProvisionerStorageMethodFile ,
59
- StorageSource :"hash" ,
60
- Provisioner :database .ProvisionerTypeEcho ,
61
- })
62
- var apiErr * codersdk.Error
63
- require .ErrorAs (t ,err ,& apiErr )
64
- require .Equal (t ,http .StatusNotFound ,apiErr .StatusCode ())
65
- })
66
-
67
- t .Run ("WithParameters" ,func (t * testing.T ) {
68
- t .Parallel ()
69
- client := coderdtest .New (t ,nil )
70
- user := coderdtest .CreateFirstUser (t ,client )
71
- data ,err := echo .Tar (& echo.Responses {
72
- Parse :echo .ParseComplete ,
73
- Provision :echo .ProvisionComplete ,
74
- ProvisionDryRun :echo .ProvisionComplete ,
75
- })
76
- require .NoError (t ,err )
77
- file ,err := client .Upload (context .Background (),codersdk .ContentTypeTar ,data )
78
- require .NoError (t ,err )
79
- _ ,err = client .CreateTemplateVersion (context .Background (),user .OrganizationID , codersdk.CreateTemplateVersionRequest {
80
- StorageMethod :database .ProvisionerStorageMethodFile ,
81
- StorageSource :file .Hash ,
82
- Provisioner :database .ProvisionerTypeEcho ,
83
- ParameterValues : []codersdk.CreateParameterRequest {{
84
- Name :"example" ,
85
- SourceValue :"value" ,
86
- SourceScheme :database .ParameterSourceSchemeData ,
87
- DestinationScheme :database .ParameterDestinationSchemeProvisionerVariable ,
88
- }},
89
- })
90
- require .NoError (t ,err )
91
- })
92
- }
93
-
94
- func TestPostTemplatesByOrganization (t * testing.T ) {
95
- t .Parallel ()
96
- t .Run ("Create" ,func (t * testing.T ) {
97
- t .Parallel ()
98
- client := coderdtest .New (t ,nil )
99
- user := coderdtest .CreateFirstUser (t ,client )
100
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
101
- _ = coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
102
- })
103
-
104
- t .Run ("AlreadyExists" ,func (t * testing.T ) {
105
- t .Parallel ()
106
- client := coderdtest .New (t ,nil )
107
- user := coderdtest .CreateFirstUser (t ,client )
108
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
109
- template := coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
110
- _ ,err := client .CreateTemplate (context .Background (),user .OrganizationID , codersdk.CreateTemplateRequest {
111
- Name :template .Name ,
112
- VersionID :version .ID ,
113
- })
114
- var apiErr * codersdk.Error
115
- require .ErrorAs (t ,err ,& apiErr )
116
- require .Equal (t ,http .StatusConflict ,apiErr .StatusCode ())
117
- })
118
-
119
- t .Run ("NoVersion" ,func (t * testing.T ) {
120
- t .Parallel ()
121
- client := coderdtest .New (t ,nil )
122
- user := coderdtest .CreateFirstUser (t ,client )
123
- _ ,err := client .CreateTemplate (context .Background (),user .OrganizationID , codersdk.CreateTemplateRequest {
124
- Name :"test" ,
125
- VersionID :uuid .New (),
126
- })
127
- var apiErr * codersdk.Error
128
- require .ErrorAs (t ,err ,& apiErr )
129
- require .Equal (t ,http .StatusNotFound ,apiErr .StatusCode ())
130
- })
131
- }
132
-
133
- func TestTemplatesByOrganization (t * testing.T ) {
134
- t .Parallel ()
135
- t .Run ("ListEmpty" ,func (t * testing.T ) {
136
- t .Parallel ()
137
- client := coderdtest .New (t ,nil )
138
- user := coderdtest .CreateFirstUser (t ,client )
139
- templates ,err := client .TemplatesByOrganization (context .Background (),user .OrganizationID )
140
- require .NoError (t ,err )
141
- require .NotNil (t ,templates )
142
- require .Len (t ,templates ,0 )
143
- })
144
-
145
- t .Run ("List" ,func (t * testing.T ) {
146
- t .Parallel ()
147
- client := coderdtest .New (t ,nil )
148
- user := coderdtest .CreateFirstUser (t ,client )
149
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
150
- coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
151
- templates ,err := client .TemplatesByOrganization (context .Background (),user .OrganizationID )
152
- require .NoError (t ,err )
153
- require .Len (t ,templates ,1 )
154
- })
155
- t .Run ("ListMultiple" ,func (t * testing.T ) {
156
- t .Parallel ()
157
- client := coderdtest .New (t ,nil )
158
- user := coderdtest .CreateFirstUser (t ,client )
159
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
160
- coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
161
- coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
162
- templates ,err := client .TemplatesByOrganization (context .Background (),user .OrganizationID )
163
- require .NoError (t ,err )
164
- require .Len (t ,templates ,2 )
165
- })
16
+ client := coderdtest .New (t ,nil )
17
+ _ = coderdtest .CreateFirstUser (t ,client )
18
+ orgs ,err := client .OrganizationsByUser (context .Background (),codersdk .Me )
19
+ require .NoError (t ,err )
20
+ require .NotNil (t ,orgs )
21
+ require .Len (t ,orgs ,1 )
166
22
}
167
23
168
- func TestTemplateByOrganizationAndName (t * testing.T ) {
24
+ func TestOrganizationByUserAndName (t * testing.T ) {
169
25
t .Parallel ()
170
- t .Run ("NotFound " ,func (t * testing.T ) {
26
+ t .Run ("NoExist " ,func (t * testing.T ) {
171
27
t .Parallel ()
172
28
client := coderdtest .New (t ,nil )
173
- user := coderdtest .CreateFirstUser (t ,client )
174
- _ ,err := client .TemplateByName (context .Background (),user . OrganizationID ,"something " )
29
+ coderdtest .CreateFirstUser (t ,client )
30
+ _ ,err := client .OrganizationByName (context .Background (),codersdk . Me ,"nothing " )
175
31
var apiErr * codersdk.Error
176
32
require .ErrorAs (t ,err ,& apiErr )
177
33
require .Equal (t ,http .StatusNotFound ,apiErr .StatusCode ())
178
34
})
179
35
180
- t .Run ("Found" ,func (t * testing.T ) {
181
- t .Parallel ()
182
- client := coderdtest .New (t ,nil )
183
- user := coderdtest .CreateFirstUser (t ,client )
184
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
185
- template := coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
186
- _ ,err := client .TemplateByName (context .Background (),user .OrganizationID ,template .Name )
187
- require .NoError (t ,err )
188
- })
189
- }
190
-
191
- func TestPostWorkspacesByOrganization (t * testing.T ) {
192
- t .Parallel ()
193
- t .Run ("InvalidTemplate" ,func (t * testing.T ) {
194
- t .Parallel ()
195
- client := coderdtest .New (t ,nil )
196
- user := coderdtest .CreateFirstUser (t ,client )
197
- _ ,err := client .CreateWorkspace (context .Background (),user .OrganizationID , codersdk.CreateWorkspaceRequest {
198
- TemplateID :uuid .New (),
199
- Name :"workspace" ,
200
- })
201
- require .Error (t ,err )
202
- var apiErr * codersdk.Error
203
- require .ErrorAs (t ,err ,& apiErr )
204
- require .Equal (t ,http .StatusBadRequest ,apiErr .StatusCode ())
205
- })
206
-
207
- t .Run ("NoTemplateAccess" ,func (t * testing.T ) {
36
+ t .Run ("NoMember" ,func (t * testing.T ) {
208
37
t .Parallel ()
209
38
client := coderdtest .New (t ,nil )
210
39
first := coderdtest .CreateFirstUser (t ,client )
211
-
212
40
other := coderdtest .CreateAnotherUser (t ,client ,first .OrganizationID )
213
41
org ,err := other .CreateOrganization (context .Background (),codersdk .Me , codersdk.CreateOrganizationRequest {
214
42
Name :"another" ,
215
43
})
216
44
require .NoError (t ,err )
217
- version := coderdtest .CreateTemplateVersion (t ,other ,org .ID ,nil )
218
- template := coderdtest .CreateTemplate (t ,other ,org .ID ,version .ID )
219
-
220
- _ ,err = client .CreateWorkspace (context .Background (),first .OrganizationID , codersdk.CreateWorkspaceRequest {
221
- TemplateID :template .ID ,
222
- Name :"workspace" ,
223
- })
224
- require .Error (t ,err )
45
+ _ ,err = client .OrganizationByName (context .Background (),codersdk .Me ,org .Name )
225
46
var apiErr * codersdk.Error
226
47
require .ErrorAs (t ,err ,& apiErr )
227
48
require .Equal (t ,http .StatusUnauthorized ,apiErr .StatusCode ())
228
49
})
229
50
230
- t .Run ("AlreadyExists" ,func (t * testing.T ) {
231
- t .Parallel ()
232
- client := coderdtest .New (t ,nil )
233
- coderdtest .NewProvisionerDaemon (t ,client )
234
- user := coderdtest .CreateFirstUser (t ,client )
235
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
236
- template := coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
237
- coderdtest .AwaitTemplateVersionJob (t ,client ,version .ID )
238
- workspace := coderdtest .CreateWorkspace (t ,client ,user .OrganizationID ,template .ID )
239
- _ ,err := client .CreateWorkspace (context .Background (),user .OrganizationID , codersdk.CreateWorkspaceRequest {
240
- TemplateID :template .ID ,
241
- Name :workspace .Name ,
242
- })
243
- require .Error (t ,err )
244
- var apiErr * codersdk.Error
245
- require .ErrorAs (t ,err ,& apiErr )
246
- require .Equal (t ,http .StatusConflict ,apiErr .StatusCode ())
247
- })
248
-
249
- t .Run ("Create" ,func (t * testing.T ) {
250
- t .Parallel ()
251
- client := coderdtest .New (t ,nil )
252
- coderdtest .NewProvisionerDaemon (t ,client )
253
- user := coderdtest .CreateFirstUser (t ,client )
254
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
255
- template := coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
256
- coderdtest .AwaitTemplateVersionJob (t ,client ,version .ID )
257
- _ = coderdtest .CreateWorkspace (t ,client ,user .OrganizationID ,template .ID )
258
- })
259
- }
260
-
261
- func TestWorkspacesByOrganization (t * testing.T ) {
262
- t .Parallel ()
263
- t .Run ("ListEmpty" ,func (t * testing.T ) {
51
+ t .Run ("Valid" ,func (t * testing.T ) {
264
52
t .Parallel ()
265
53
client := coderdtest .New (t ,nil )
266
54
user := coderdtest .CreateFirstUser (t ,client )
267
- _ ,err := client .WorkspacesByOrganization (context .Background (),user .OrganizationID )
55
+ org ,err := client .Organization (context .Background (),user .OrganizationID )
268
56
require .NoError (t ,err )
269
- })
270
- t .Run ("List" ,func (t * testing.T ) {
271
- t .Parallel ()
272
- client := coderdtest .New (t ,nil )
273
- coderdtest .NewProvisionerDaemon (t ,client )
274
- user := coderdtest .CreateFirstUser (t ,client )
275
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
276
- coderdtest .AwaitTemplateVersionJob (t ,client ,version .ID )
277
- template := coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
278
- _ = coderdtest .CreateWorkspace (t ,client ,user .OrganizationID ,template .ID )
279
- workspaces ,err := client .WorkspacesByOrganization (context .Background (),user .OrganizationID )
57
+ _ ,err = client .OrganizationByName (context .Background (),codersdk .Me ,org .Name )
280
58
require .NoError (t ,err )
281
- require .Len (t ,workspaces ,1 )
282
59
})
283
60
}
284
61
285
- func TestWorkspacesByOwner (t * testing.T ) {
62
+ func TestPostOrganizationsByUser (t * testing.T ) {
286
63
t .Parallel ()
287
- t .Run ("ListEmpty" ,func (t * testing.T ) {
288
- t .Parallel ()
289
- client := coderdtest .New (t ,nil )
290
- user := coderdtest .CreateFirstUser (t ,client )
291
- _ ,err := client .WorkspacesByOwner (context .Background (),user .OrganizationID ,codersdk .Me )
292
- require .NoError (t ,err )
293
- })
294
- t .Run ("List" ,func (t * testing.T ) {
64
+ t .Run ("Conflict" ,func (t * testing.T ) {
295
65
t .Parallel ()
296
66
client := coderdtest .New (t ,nil )
297
- coderdtest .NewProvisionerDaemon (t ,client )
298
67
user := coderdtest .CreateFirstUser (t ,client )
299
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
300
- coderdtest .AwaitTemplateVersionJob (t ,client ,version .ID )
301
- template := coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
302
- _ = coderdtest .CreateWorkspace (t ,client ,user .OrganizationID ,template .ID )
303
- workspaces ,err := client .WorkspacesByOwner (context .Background (),user .OrganizationID ,codersdk .Me )
68
+ org ,err := client .Organization (context .Background (),user .OrganizationID )
304
69
require .NoError (t ,err )
305
- require .Len (t ,workspaces ,1 )
306
- })
307
- }
308
-
309
- func TestWorkspaceByOwnerAndName (t * testing.T ) {
310
- t .Parallel ()
311
- t .Run ("NotFound" ,func (t * testing.T ) {
312
- t .Parallel ()
313
- client := coderdtest .New (t ,nil )
314
- user := coderdtest .CreateFirstUser (t ,client )
315
- _ ,err := client .WorkspaceByOwnerAndName (context .Background (),user .OrganizationID ,codersdk .Me ,"something" )
70
+ _ ,err = client .CreateOrganization (context .Background (),codersdk .Me , codersdk.CreateOrganizationRequest {
71
+ Name :org .Name ,
72
+ })
316
73
var apiErr * codersdk.Error
317
74
require .ErrorAs (t ,err ,& apiErr )
318
- require .Equal (t ,http .StatusNotFound ,apiErr .StatusCode ())
75
+ require .Equal (t ,http .StatusConflict ,apiErr .StatusCode ())
319
76
})
320
- t .Run ("Get" ,func (t * testing.T ) {
77
+
78
+ t .Run ("Create" ,func (t * testing.T ) {
321
79
t .Parallel ()
322
80
client := coderdtest .New (t ,nil )
323
- coderdtest .NewProvisionerDaemon (t ,client )
324
- user := coderdtest .CreateFirstUser (t ,client )
325
- version := coderdtest .CreateTemplateVersion (t ,client ,user .OrganizationID ,nil )
326
- coderdtest .AwaitTemplateVersionJob (t ,client ,version .ID )
327
- template := coderdtest .CreateTemplate (t ,client ,user .OrganizationID ,version .ID )
328
- workspace := coderdtest .CreateWorkspace (t ,client ,user .OrganizationID ,template .ID )
329
- _ ,err := client .WorkspaceByOwnerAndName (context .Background (),user .OrganizationID ,codersdk .Me ,workspace .Name )
81
+ _ = coderdtest .CreateFirstUser (t ,client )
82
+ _ ,err := client .CreateOrganization (context .Background (),codersdk .Me , codersdk.CreateOrganizationRequest {
83
+ Name :"new" ,
84
+ })
330
85
require .NoError (t ,err )
331
86
})
332
87
}