@@ -73,3 +73,64 @@ func TestScriptNeverRuns(t *testing.T) {
7373 }},
7474 })
7575}
76+
77+ func TestScriptStartBlocksLoginRequiresRunOnStart (t * testing.T ) {
78+ t .Parallel ()
79+
80+ resource .Test (t , resource.TestCase {
81+ Providers : map [string ]* schema.Provider {
82+ "coder" : provider .New (),
83+ },
84+ IsUnitTest : true ,
85+ Steps : []resource.TestStep {{
86+ Config : `
87+ provider "coder" {
88+ }
89+ resource "coder_script" "example" {
90+ agent_id = ""
91+ display_name = "Hey"
92+ script = "Wow"
93+ run_on_stop = true
94+ start_blocks_login = true
95+ }
96+ ` ,
97+ ExpectError : regexp .MustCompile (`start_blocks_login can only be set if run_on_start is true` ),
98+ }},
99+ })
100+ resource .Test (t , resource.TestCase {
101+ Providers : map [string ]* schema.Provider {
102+ "coder" : provider .New (),
103+ },
104+ IsUnitTest : true ,
105+ Steps : []resource.TestStep {{
106+ Config : `
107+ provider "coder" {
108+ }
109+ resource "coder_script" "example" {
110+ agent_id = ""
111+ display_name = "Hey"
112+ script = "Wow"
113+ start_blocks_login = true
114+ run_on_start = true
115+ }
116+ ` ,
117+ Check : func (state * terraform.State ) error {
118+ require .Len (t , state .Modules , 1 )
119+ require .Len (t , state .Modules [0 ].Resources , 1 )
120+ script := state .Modules [0 ].Resources ["coder_script.example" ]
121+ require .NotNil (t , script )
122+ t .Logf ("script attributes: %#v" , script .Primary .Attributes )
123+ for key , expected := range map [string ]string {
124+ "agent_id" : "" ,
125+ "display_name" : "Hey" ,
126+ "script" : "Wow" ,
127+ "start_blocks_login" : "true" ,
128+ "run_on_start" : "true" ,
129+ } {
130+ require .Equal (t , expected , script .Primary .Attributes [key ])
131+ }
132+ return nil
133+ },
134+ }},
135+ })
136+ }
0 commit comments