@@ -34,6 +34,19 @@ func Test_Runner(t *testing.T) {
3434 t .Skip ("Race detector enabled, skipping time-sensitive test." )
3535 }
3636
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+
3750 t .Run ("OK" , func (t * testing.T ) {
3851 t .Parallel ()
3952
@@ -47,8 +60,16 @@ func Test_Runner(t *testing.T) {
4760
4861 authToken := uuid .NewString ()
4962 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+ },
5273 ProvisionApply : []* proto.Response {
5374 {
5475 Type : & proto.Response_Log {
@@ -102,7 +123,8 @@ func Test_Runner(t *testing.T) {
102123 Workspace : workspacebuild.Config {
103124 OrganizationID : user .OrganizationID ,
104125 Request : codersdk.CreateWorkspaceRequest {
105- TemplateID : template .ID ,
126+ TemplateID : template .ID ,
127+ RichParameterValues : testParameterValues ,
106128 },
107129 },
108130 ReconnectingPTY : & reconnectingpty.Config {
@@ -133,6 +155,13 @@ func Test_Runner(t *testing.T) {
133155 require .NoError (t , err )
134156 require .Len (t , workspaces .Workspaces , 1 )
135157
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+
136165 // Look for strings in the logs.
137166 require .Contains (t , logsStr , "Generating user password..." )
138167 require .Contains (t , logsStr , "Creating user:" )
@@ -173,8 +202,16 @@ func Test_Runner(t *testing.T) {
173202 user := coderdtest .CreateFirstUser (t , client )
174203
175204 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+ },
178215 ProvisionApply : []* proto.Response {
179216 {
180217 Type : & proto.Response_Log {Log : & proto.Log {}},
@@ -200,7 +237,8 @@ func Test_Runner(t *testing.T) {
200237 Workspace : workspacebuild.Config {
201238 OrganizationID : user .OrganizationID ,
202239 Request : codersdk.CreateWorkspaceRequest {
203- TemplateID : template .ID ,
240+ TemplateID : template .ID ,
241+ RichParameterValues : testParameterValues ,
204242 },
205243 },
206244 })
@@ -288,8 +326,16 @@ func Test_Runner(t *testing.T) {
288326
289327 authToken := uuid .NewString ()
290328 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+ },
293339 ProvisionApply : []* proto.Response {
294340 {
295341 Type : & proto.Response_Log {
@@ -344,7 +390,8 @@ func Test_Runner(t *testing.T) {
344390 Workspace : workspacebuild.Config {
345391 OrganizationID : user .OrganizationID ,
346392 Request : codersdk.CreateWorkspaceRequest {
347- TemplateID : template .ID ,
393+ TemplateID : template .ID ,
394+ RichParameterValues : testParameterValues ,
348395 },
349396 },
350397 ReconnectingPTY : & reconnectingpty.Config {
@@ -375,6 +422,13 @@ func Test_Runner(t *testing.T) {
375422 require .NoError (t , err )
376423 require .Len (t , workspaces .Workspaces , 1 )
377424
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+
378432 // Look for strings in the logs.
379433 require .Contains (t , logsStr , "Generating user password..." )
380434 require .Contains (t , logsStr , "Creating user:" )
@@ -413,8 +467,16 @@ func Test_Runner(t *testing.T) {
413467 user := coderdtest .CreateFirstUser (t , client )
414468
415469 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+ },
418480 ProvisionApply : []* proto.Response {
419481 {
420482 Type : & proto.Response_Apply {
@@ -438,7 +500,8 @@ func Test_Runner(t *testing.T) {
438500 Workspace : workspacebuild.Config {
439501 OrganizationID : user .OrganizationID ,
440502 Request : codersdk.CreateWorkspaceRequest {
441- TemplateID : template .ID ,
503+ TemplateID : template .ID ,
504+ RichParameterValues : testParameterValues ,
442505 },
443506 },
444507 })
0 commit comments