@@ -446,6 +446,99 @@ func Test_WorkspaceTagDefaultsFromFile(t *testing.T) {
446
446
expectTags : nil ,
447
447
expectError : `Function calls not allowed; Functions may not be called here.` ,
448
448
},
449
+ {
450
+ name : "supported types" ,
451
+ files : map [string ]string {
452
+ "main.tf" : `
453
+ variable "stringvar" {
454
+ type = string
455
+ default = "a"
456
+ }
457
+ variable "numvar" {
458
+ type = number
459
+ default = 1
460
+ }
461
+ variable "boolvar" {
462
+ type = bool
463
+ default = true
464
+ }
465
+ data "coder_parameter" "stringparam" {
466
+ name = "stringparam"
467
+ type = "string"
468
+ default = "a"
469
+ }
470
+ data "coder_parameter" "numparam" {
471
+ name = "numparam"
472
+ type = "number"
473
+ default = 1
474
+ }
475
+ data "coder_parameter" "boolparam" {
476
+ name = "boolparam"
477
+ type = "bool"
478
+ default = true
479
+ }
480
+ data "coder_parameter" "listparam" {
481
+ name = "listparam"
482
+ type = "list(string)"
483
+ default = "[\"a\", \"b\"]"
484
+ }
485
+ data "coder_workspace_tags" "tags" {
486
+ tags = {
487
+ "stringvar" = var.stringvar
488
+ "numvar" = var.numvar
489
+ "boolvar" = var.boolvar
490
+ "stringparam" = data.coder_parameter.stringparam.value
491
+ "numparam" = data.coder_parameter.numparam.value
492
+ "boolparam" = data.coder_parameter.boolparam.value
493
+ "listparam" = data.coder_parameter.listparam.value
494
+ }
495
+ }` ,
496
+ },
497
+ expectTags : map [string ]string {
498
+ "stringvar" : "a" ,
499
+ "numvar" : "1" ,
500
+ "boolvar" : "true" ,
501
+ "stringparam" : "a" ,
502
+ "numparam" : "1" ,
503
+ "boolparam" : "true" ,
504
+ "listparam" : `["a", "b"]` ,
505
+ },
506
+ expectError : `` ,
507
+ },
508
+ {
509
+ name : "unsupported list variable" ,
510
+ files : map [string ]string {
511
+ "main.tf" : `
512
+ variable "listvar" {
513
+ type = list(string)
514
+ default = ["a"]
515
+ }
516
+ data "coder_workspace_tags" "tags" {
517
+ tags = {
518
+ listvar = var.listvar
519
+ }
520
+ }` ,
521
+ },
522
+ expectTags : nil ,
523
+ expectError : `can't convert variable default value to string: unsupported type []interface {}` ,
524
+ },
525
+ {
526
+ name : "unsupported map variable" ,
527
+ files : map [string ]string {
528
+ "main.tf" : `
529
+ variable "mapvar" {
530
+ type = map(string)
531
+ default = {"a": "b"}
532
+ }
533
+ data "coder_workspace_tags" "tags" {
534
+ tags = {
535
+ mapvar = var.mapvar
536
+ }
537
+ }` ,
538
+ },
539
+ expectTags : nil ,
540
+ expectError : `can't convert variable default value to string: unsupported type map[string]interface {}` ,
541
+ },
449
542
} {
450
543
tc := tc
451
544
t .Run (tc .name + "/tar" , func (t * testing.T ) {
0 commit comments