Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitdc08ac6

Browse files
committed
fix!: add extra validation for start_blocks_login
1 parent62c590d commitdc08ac6

File tree

2 files changed

+65
-0
lines changed

2 files changed

+65
-0
lines changed

‎provider/script.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,16 @@ func scriptResource() *schema.Resource {
1919
CreateContext:func(_ context.Context,rd*schema.ResourceData,_interface{}) diag.Diagnostics {
2020
rd.SetId(uuid.NewString())
2121
runOnStart,_:=rd.Get("run_on_start").(bool)
22+
startBlocksLogin,_:=rd.Get("start_blocks_login").(bool)
2223
runOnStop,_:=rd.Get("run_on_stop").(bool)
2324
cron,_:=rd.Get("cron").(string)
2425

2526
if!runOnStart&&!runOnStop&&cron=="" {
2627
returndiag.Errorf("at least one of run_on_start, run_on_stop, or cron must be set")
2728
}
29+
if!runOnStart&&startBlocksLogin {
30+
returndiag.Errorf("start_blocks_login can only be set if run_on_start is true")
31+
}
2832
returnnil
2933
},
3034
ReadContext:schema.NoopContext,

‎provider/script_test.go

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,64 @@ func TestScriptNeverRuns(t *testing.T) {
7373
}},
7474
})
7575
}
76+
77+
funcTestScriptStartBlocksLoginRequiresRunOnStart(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+
forkey,expected:=rangemap[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+
returnnil
133+
},
134+
}},
135+
})
136+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp