@@ -5,10 +5,17 @@ import {
5
5
echoResponsesWithParameters ,
6
6
updateTemplate ,
7
7
updateWorkspace ,
8
+ updateWorkspaceParameters ,
8
9
verifyParameters ,
9
10
} from "../helpers"
10
11
11
- import { fifthParameter , firstParameter , secondParameter } from "../parameters"
12
+ import {
13
+ fifthParameter ,
14
+ firstParameter ,
15
+ secondParameter ,
16
+ sixthParameter ,
17
+ secondBuildOption ,
18
+ } from "../parameters"
12
19
import { RichParameter } from "../provisionerGenerated"
13
20
14
21
test ( "update workspace, new optional, immutable parameter added" , async ( {
@@ -41,10 +48,83 @@ test("update workspace, new optional, immutable parameter added", async ({
41
48
{ name : fifthParameter . name , value : fifthParameter . options [ 0 ] . value } ,
42
49
] )
43
50
44
- // Verify that parameter values are default .
51
+ // Verify parameter values.
45
52
await verifyParameters ( page , workspaceName , updatedRichParameters , [
46
53
{ name : firstParameter . name , value : firstParameter . defaultValue } ,
47
54
{ name : secondParameter . name , value : secondParameter . defaultValue } ,
48
55
{ name : fifthParameter . name , value : fifthParameter . options [ 0 ] . value } ,
49
56
] )
50
57
} )
58
+
59
+ test ( "update workspace, new required, mutable parameter added" , async ( {
60
+ page,
61
+ } ) => {
62
+ const richParameters : RichParameter [ ] = [ firstParameter , secondParameter ]
63
+ const template = await createTemplate (
64
+ page ,
65
+ echoResponsesWithParameters ( richParameters ) ,
66
+ )
67
+
68
+ const workspaceName = await createWorkspace ( page , template )
69
+
70
+ // Verify that parameter values are default.
71
+ await verifyParameters ( page , workspaceName , richParameters , [
72
+ { name : firstParameter . name , value : firstParameter . defaultValue } ,
73
+ { name : secondParameter . name , value : secondParameter . defaultValue } ,
74
+ ] )
75
+
76
+ // Push updated template.
77
+ const updatedRichParameters = [ ...richParameters , sixthParameter ]
78
+ await updateTemplate (
79
+ page ,
80
+ template ,
81
+ echoResponsesWithParameters ( updatedRichParameters ) ,
82
+ )
83
+
84
+ // Now, update the workspace, and provide the parameter value.
85
+ const buildParameters = [ { name : sixthParameter . name , value : "99" } ]
86
+ await updateWorkspace (
87
+ page ,
88
+ workspaceName ,
89
+ updatedRichParameters ,
90
+ buildParameters ,
91
+ )
92
+
93
+ // Verify parameter values.
94
+ await verifyParameters ( page , workspaceName , updatedRichParameters , [
95
+ { name : firstParameter . name , value : firstParameter . defaultValue } ,
96
+ { name : secondParameter . name , value : secondParameter . defaultValue } ,
97
+ ...buildParameters ,
98
+ ] )
99
+ } )
100
+
101
+ test ( "update workspace with ephemeral parameter enabled" , async ( { page } ) => {
102
+ const richParameters : RichParameter [ ] = [ firstParameter , secondBuildOption ]
103
+ const template = await createTemplate (
104
+ page ,
105
+ echoResponsesWithParameters ( richParameters ) ,
106
+ )
107
+
108
+ const workspaceName = await createWorkspace ( page , template )
109
+
110
+ // Verify that parameter values are default.
111
+ await verifyParameters ( page , workspaceName , richParameters , [
112
+ { name : firstParameter . name , value : firstParameter . defaultValue } ,
113
+ { name : secondBuildOption . name , value : secondBuildOption . defaultValue } ,
114
+ ] )
115
+
116
+ // Now, update the workspace, and select the value for ephemeral parameter.
117
+ const buildParameters = [ { name : secondBuildOption . name , value : "true" } ]
118
+ await updateWorkspaceParameters (
119
+ page ,
120
+ workspaceName ,
121
+ richParameters ,
122
+ buildParameters ,
123
+ )
124
+
125
+ // Verify that parameter values are default.
126
+ await verifyParameters ( page , workspaceName , richParameters , [
127
+ { name : firstParameter . name , value : firstParameter . defaultValue } ,
128
+ { name : secondBuildOption . name , value : secondBuildOption . defaultValue } ,
129
+ ] )
130
+ } )
0 commit comments