@@ -34,6 +34,19 @@ func Test_Runner(t *testing.T) {
34
34
t .Skip ("Race detector enabled, skipping time-sensitive test." )
35
35
}
36
36
37
+ testParameters := []* proto.RichParameter {
38
+ {
39
+ Name : "foo" ,
40
+ DefaultValue : "baz" ,
41
+ },
42
+ }
43
+ testParameterValues := []codersdk.WorkspaceBuildParameter {
44
+ {
45
+ Name : "foo" ,
46
+ Value : "baz" ,
47
+ },
48
+ }
49
+
37
50
t .Run ("OK" , func (t * testing.T ) {
38
51
t .Parallel ()
39
52
@@ -47,8 +60,16 @@ func Test_Runner(t *testing.T) {
47
60
48
61
authToken := uuid .NewString ()
49
62
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
50
- Parse : echo .ParseComplete ,
51
- ProvisionPlan : echo .PlanComplete ,
63
+ Parse : echo .ParseComplete ,
64
+ ProvisionPlan : []* proto.Response {
65
+ {
66
+ Type : & proto.Response_Plan {
67
+ Plan : & proto.PlanComplete {
68
+ Parameters : testParameters ,
69
+ },
70
+ },
71
+ },
72
+ },
52
73
ProvisionApply : []* proto.Response {
53
74
{
54
75
Type : & proto.Response_Log {
@@ -102,7 +123,8 @@ func Test_Runner(t *testing.T) {
102
123
Workspace : workspacebuild.Config {
103
124
OrganizationID : user .OrganizationID ,
104
125
Request : codersdk.CreateWorkspaceRequest {
105
- TemplateID : template .ID ,
126
+ TemplateID : template .ID ,
127
+ RichParameterValues : testParameterValues ,
106
128
},
107
129
},
108
130
ReconnectingPTY : & reconnectingpty.Config {
@@ -133,6 +155,13 @@ func Test_Runner(t *testing.T) {
133
155
require .NoError (t , err )
134
156
require .Len (t , workspaces .Workspaces , 1 )
135
157
158
+ // Ensure the correct build parameters were used.
159
+ buildParams , err := client .WorkspaceBuildParameters (ctx , workspaces .Workspaces [0 ].LatestBuild .ID )
160
+ require .NoError (t , err )
161
+ require .Len (t , buildParams , 1 )
162
+ require .Equal (t , testParameterValues [0 ].Name , buildParams [0 ].Name )
163
+ require .Equal (t , testParameterValues [0 ].Value , buildParams [0 ].Value )
164
+
136
165
// Look for strings in the logs.
137
166
require .Contains (t , logsStr , "Generating user password..." )
138
167
require .Contains (t , logsStr , "Creating user:" )
@@ -173,8 +202,16 @@ func Test_Runner(t *testing.T) {
173
202
user := coderdtest .CreateFirstUser (t , client )
174
203
175
204
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
176
- Parse : echo .ParseComplete ,
177
- ProvisionPlan : echo .PlanComplete ,
205
+ Parse : echo .ParseComplete ,
206
+ ProvisionPlan : []* proto.Response {
207
+ {
208
+ Type : & proto.Response_Plan {
209
+ Plan : & proto.PlanComplete {
210
+ Parameters : testParameters ,
211
+ },
212
+ },
213
+ },
214
+ },
178
215
ProvisionApply : []* proto.Response {
179
216
{
180
217
Type : & proto.Response_Log {Log : & proto.Log {}},
@@ -200,7 +237,8 @@ func Test_Runner(t *testing.T) {
200
237
Workspace : workspacebuild.Config {
201
238
OrganizationID : user .OrganizationID ,
202
239
Request : codersdk.CreateWorkspaceRequest {
203
- TemplateID : template .ID ,
240
+ TemplateID : template .ID ,
241
+ RichParameterValues : testParameterValues ,
204
242
},
205
243
},
206
244
})
@@ -288,8 +326,16 @@ func Test_Runner(t *testing.T) {
288
326
289
327
authToken := uuid .NewString ()
290
328
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
291
- Parse : echo .ParseComplete ,
292
- ProvisionPlan : echo .PlanComplete ,
329
+ Parse : echo .ParseComplete ,
330
+ ProvisionPlan : []* proto.Response {
331
+ {
332
+ Type : & proto.Response_Plan {
333
+ Plan : & proto.PlanComplete {
334
+ Parameters : testParameters ,
335
+ },
336
+ },
337
+ },
338
+ },
293
339
ProvisionApply : []* proto.Response {
294
340
{
295
341
Type : & proto.Response_Log {
@@ -344,7 +390,8 @@ func Test_Runner(t *testing.T) {
344
390
Workspace : workspacebuild.Config {
345
391
OrganizationID : user .OrganizationID ,
346
392
Request : codersdk.CreateWorkspaceRequest {
347
- TemplateID : template .ID ,
393
+ TemplateID : template .ID ,
394
+ RichParameterValues : testParameterValues ,
348
395
},
349
396
},
350
397
ReconnectingPTY : & reconnectingpty.Config {
@@ -375,6 +422,13 @@ func Test_Runner(t *testing.T) {
375
422
require .NoError (t , err )
376
423
require .Len (t , workspaces .Workspaces , 1 )
377
424
425
+ // Ensure the correct build parameters were used.
426
+ buildParams , err := client .WorkspaceBuildParameters (ctx , workspaces .Workspaces [0 ].LatestBuild .ID )
427
+ require .NoError (t , err )
428
+ require .Len (t , buildParams , 1 )
429
+ require .Equal (t , testParameterValues [0 ].Name , buildParams [0 ].Name )
430
+ require .Equal (t , testParameterValues [0 ].Value , buildParams [0 ].Value )
431
+
378
432
// Look for strings in the logs.
379
433
require .Contains (t , logsStr , "Generating user password..." )
380
434
require .Contains (t , logsStr , "Creating user:" )
@@ -413,8 +467,16 @@ func Test_Runner(t *testing.T) {
413
467
user := coderdtest .CreateFirstUser (t , client )
414
468
415
469
version := coderdtest .CreateTemplateVersion (t , client , user .OrganizationID , & echo.Responses {
416
- Parse : echo .ParseComplete ,
417
- ProvisionPlan : echo .PlanComplete ,
470
+ Parse : echo .ParseComplete ,
471
+ ProvisionPlan : []* proto.Response {
472
+ {
473
+ Type : & proto.Response_Plan {
474
+ Plan : & proto.PlanComplete {
475
+ Parameters : testParameters ,
476
+ },
477
+ },
478
+ },
479
+ },
418
480
ProvisionApply : []* proto.Response {
419
481
{
420
482
Type : & proto.Response_Apply {
@@ -438,7 +500,8 @@ func Test_Runner(t *testing.T) {
438
500
Workspace : workspacebuild.Config {
439
501
OrganizationID : user .OrganizationID ,
440
502
Request : codersdk.CreateWorkspaceRequest {
441
- TemplateID : template .ID ,
503
+ TemplateID : template .ID ,
504
+ RichParameterValues : testParameterValues ,
442
505
},
443
506
},
444
507
})
0 commit comments