@@ -261,6 +261,70 @@ func TestParse(t *testing.T) {
261
261
},
262
262
},
263
263
},
264
+ {
265
+ Name : "workspace-tags-in-a-single-file" ,
266
+ Files : map [string ]string {
267
+ "main.tf" : `
268
+
269
+ data "coder_parameter" "os_selector" {
270
+ name = "os_selector"
271
+ display_name = "Operating System"
272
+ mutable = false
273
+
274
+ default = "osx"
275
+
276
+ option {
277
+ icon = "/icons/linux.png"
278
+ name = "Linux"
279
+ value = "linux"
280
+ }
281
+ option {
282
+ icon = "/icons/osx.png"
283
+ name = "OSX"
284
+ value = "osx"
285
+ }
286
+ option {
287
+ icon = "/icons/windows.png"
288
+ name = "Windows"
289
+ value = "windows"
290
+ }
291
+ }
292
+
293
+ data "coder_parameter" "feature_cache_enabled" {
294
+ name = "feature_cache_enabled"
295
+ display_name = "Enable cache?"
296
+ type = "bool"
297
+
298
+ default = false
299
+ }
300
+
301
+ data "coder_parameter" "feature_debug_enabled" {
302
+ name = "feature_debug_enabled"
303
+ display_name = "Enable debug?"
304
+ type = "bool"
305
+
306
+ default = true
307
+ }
308
+
309
+ data "coder_workspace_tags" "custom_workspace_tags" {
310
+ tags = {
311
+ "cluster" = "developers"
312
+ "os" = data.coder_parameter.os_selector.value
313
+ "debug" = "${data.coder_parameter.feature_debug_enabled.value}+12345"
314
+ "cache" = data.coder_parameter.feature_cache_enabled.value == "true" ? "nix-with-cache" : "no-cache"
315
+ }
316
+ }
317
+ ` ,
318
+ },
319
+ Response : & proto.ParseComplete {
320
+ WorkspaceTags : map [string ]string {
321
+ "cluster" : `"developers"` ,
322
+ "os" : `data.coder_parameter.os_selector.value` ,
323
+ "debug" : `"${data.coder_parameter.feature_debug_enabled.value}+12345"` ,
324
+ "cache" : `data.coder_parameter.feature_cache_enabled.value == "true" ? "nix-with-cache" : "no-cache"` ,
325
+ },
326
+ },
327
+ },
264
328
}
265
329
266
330
for _ , testCase := range testCases {
0 commit comments