Skip to content

Commit e65bdd7

Browse files
committed
add happy path test
1 parent 1ff03fc commit e65bdd7

File tree

3 files changed

+98
-9
lines changed

3 files changed

+98
-9
lines changed

preview_test.go

Lines changed: 47 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,13 @@ func Test_Extract(t *testing.T) {
4141
failPreview bool
4242
input preview.Input
4343

44-
expTags map[string]string
45-
unknownTags []string
46-
params map[string]assertParam
47-
variables map[string]assertVariable
48-
presets func(t *testing.T, presets []types.Preset)
49-
warnings []*regexp.Regexp
44+
expTags map[string]string
45+
unknownTags []string
46+
params map[string]assertParam
47+
variables map[string]assertVariable
48+
presetsFuncs func(t *testing.T, presets []types.Preset)
49+
presets map[string]assertPreset
50+
warnings []*regexp.Regexp
5051
}{
5152
{
5253
name: "bad param values",
@@ -266,6 +267,27 @@ func Test_Extract(t *testing.T) {
266267
errorDiagnostics("Required"),
267268
},
268269
},
270+
{
271+
name: "valid prebuild",
272+
dir: "preset",
273+
expTags: map[string]string{},
274+
input: preview.Input{},
275+
unknownTags: []string{},
276+
params: map[string]assertParam{
277+
"number": ap(),
278+
"has_default": ap(),
279+
},
280+
presets: map[string]assertPreset{
281+
"valid_preset": aPre().
282+
value("number", "9").
283+
value("has_default", "changed").
284+
prebuildCount(3),
285+
"prebuild_instance_zero": aPre().
286+
prebuildCount(0),
287+
"not_prebuild": aPre().
288+
prebuildCount(0),
289+
},
290+
},
269291
{
270292
name: "invalid presets",
271293
dir: "invalidpresets",
@@ -276,7 +298,7 @@ func Test_Extract(t *testing.T) {
276298
"valid_parameter_name": ap().
277299
optVals("valid_option_value"),
278300
},
279-
presets: func(t *testing.T, presets []types.Preset) {
301+
presetsFuncs: func(t *testing.T, presets []types.Preset) {
280302
presetMap := map[string]func(t *testing.T, preset types.Preset){
281303
"empty_parameters": func(t *testing.T, preset types.Preset) {
282304
require.Len(t, preset.Diagnostics, 0)
@@ -688,8 +710,14 @@ func Test_Extract(t *testing.T) {
688710
}
689711

690712
// Assert presets
691-
if tc.presets != nil {
692-
tc.presets(t, output.Presets)
713+
if tc.presetsFuncs != nil {
714+
tc.presetsFuncs(t, output.Presets)
715+
}
716+
717+
for _, preset := range output.Presets {
718+
check, ok := tc.presets[preset.Name]
719+
require.True(t, ok, "unknown preset %s", preset.Name)
720+
check(t, preset)
693721
}
694722

695723
// Assert variables
@@ -961,6 +989,16 @@ func (a assertPreset) def(def bool) assertPreset {
961989
})
962990
}
963991

992+
func (a assertPreset) prebuildCount(exp int) assertPreset {
993+
return a.extend(func(t *testing.T, preset types.Preset) {
994+
if exp == 0 && preset.Prebuild == nil {
995+
return
996+
}
997+
require.NotNilf(t, preset.Prebuild, "prebuild should not be nil, expected %d instances", exp)
998+
require.Equal(t, exp, preset.Prebuild.Instances)
999+
})
1000+
}
1001+
9641002
func (a assertPreset) value(key, value string) assertPreset {
9651003
return a.extend(func(t *testing.T, preset types.Preset) {
9661004
v, ok := preset.Parameters[key]

testdata/preset/main.tf

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
terraform {
2+
required_providers {
3+
coder = {
4+
source = "coder/coder"
5+
version = "2.8.0"
6+
}
7+
}
8+
}
9+
10+
data "coder_parameter" "number" {
11+
name = "number"
12+
default = "7"
13+
type = "number"
14+
15+
validation {
16+
min = 4
17+
max = 10
18+
}
19+
}
20+
21+
data "coder_parameter" "has_default" {
22+
name = "has_default"
23+
default = "hello world"
24+
}
25+
26+
27+
data "coder_workspace_preset" "valid_preset" {
28+
name = "valid_preset"
29+
30+
parameters = {
31+
"number" = "9"
32+
"has_default" = "changed"
33+
}
34+
prebuilds {
35+
instances = 3
36+
}
37+
}
38+
39+
data "coder_workspace_preset" "prebuild_instance_zero" {
40+
name = "prebuild_instance_zero"
41+
42+
prebuilds {
43+
// No instances
44+
instances = 0
45+
}
46+
}
47+
48+
data "coder_workspace_preset" "not_prebuild" {
49+
name = "not_prebuild"
50+
}

testdata/presetfail/skipe2e

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
parameters are invalid without input

0 commit comments

Comments
 (0)