@@ -29,16 +29,25 @@ const renderCreateWorkspacePage = () => {
29
29
}
30
30
31
31
describe ( "CreateWorkspacePage" , ( ) => {
32
- it ( "renders with rich parameter " , async ( ) => {
32
+ it ( "renders" , async ( ) => {
33
33
jest
34
34
. spyOn ( API , "getTemplateVersionRichParameters" )
35
35
. mockResolvedValueOnce ( [ MockTemplateVersionParameter1 ] )
36
+ renderCreateWorkspacePage ( )
36
37
37
- await waitFor ( ( ) => renderCreateWorkspacePage ( ) )
38
+ const element = await screen . findByText ( "Create workspace" )
39
+ expect ( element ) . toBeDefined ( )
40
+ } )
41
+
42
+ it ( "renders with rich parameter" , async ( ) => {
43
+ jest
44
+ . spyOn ( API , "getTemplateVersionRichParameters" )
45
+ . mockResolvedValueOnce ( [ MockTemplateVersionParameter1 ] )
46
+ renderCreateWorkspacePage ( )
38
47
39
- const element = screen . findByText ( "Create workspace" )
48
+ const element = await screen . findByText ( "Create workspace" )
40
49
expect ( element ) . toBeDefined ( )
41
- const firstParameter = screen . findByText (
50
+ const firstParameter = await screen . findByText (
42
51
MockTemplateVersionParameter1 . description ,
43
52
)
44
53
expect ( firstParameter ) . toBeDefined ( )
@@ -52,6 +61,9 @@ describe("CreateWorkspacePage", () => {
52
61
. spyOn ( API , "getWorkspaceQuota" )
53
62
. mockResolvedValueOnce ( MockWorkspaceQuota )
54
63
jest . spyOn ( API , "createWorkspace" ) . mockResolvedValueOnce ( MockWorkspace )
64
+ jest
65
+ . spyOn ( API , "getTemplateVersionRichParameters" )
66
+ . mockResolvedValueOnce ( [ MockTemplateVersionParameter1 ] )
55
67
56
68
renderCreateWorkspacePage ( )
57
69
@@ -89,17 +101,14 @@ describe("CreateWorkspacePage", () => {
89
101
. spyOn ( API , "getTemplateVersionRichParameters" )
90
102
. mockResolvedValueOnce ( [ MockTemplateVersionParameter1 ] )
91
103
92
- await waitFor ( ( ) =>
93
- renderWithAuth ( < CreateWorkspacePage /> , {
94
- route :
95
- "/templates/" +
96
- MockTemplate . name +
97
- `/workspace?param.${ param } =${ paramValue } ` ,
98
- path : "/templates/:template/workspace" ,
99
- } ) ,
100
- )
101
-
102
- await screen . findByDisplayValue ( paramValue )
104
+ renderWithAuth ( < CreateWorkspacePage /> , {
105
+ route :
106
+ "/templates/" +
107
+ MockTemplate . name +
108
+ `/workspace?param.${ param } =${ paramValue } ` ,
109
+ path : "/templates/:template/workspace" ,
110
+ } ) ,
111
+ await screen . findByDisplayValue ( paramValue )
103
112
} )
104
113
105
114
it ( "uses default rich param values passed from the URL" , async ( ) => {
@@ -138,21 +147,26 @@ describe("CreateWorkspacePage", () => {
138
147
139
148
await waitFor ( ( ) => renderCreateWorkspacePage ( ) )
140
149
141
- const element = screen . findByText ( "Create workspace" )
150
+ const element = await screen . findByText ( "Create workspace" )
142
151
expect ( element ) . toBeDefined ( )
143
- const secondParameter = screen . findByText (
152
+ const secondParameter = await screen . findByText (
144
153
MockTemplateVersionParameter2 . description ,
145
154
)
146
155
expect ( secondParameter ) . toBeDefined ( )
147
156
148
157
const secondParameterField = await screen . findByLabelText (
149
158
MockTemplateVersionParameter2 . name ,
150
159
)
160
+ expect ( secondParameterField ) . toBeDefined ( )
161
+
151
162
fireEvent . change ( secondParameterField , {
152
163
target : { value : "4" } ,
153
164
} )
165
+ fireEvent . submit ( secondParameter )
154
166
155
- const validationError = screen . findByText ( "Value must be between" )
167
+ const validationError = await screen . findByText (
168
+ "Value must be between 1 and 3." ,
169
+ )
156
170
expect ( validationError ) . toBeDefined ( )
157
171
} )
158
172
@@ -166,23 +180,26 @@ describe("CreateWorkspacePage", () => {
166
180
167
181
await waitFor ( ( ) => renderCreateWorkspacePage ( ) )
168
182
169
- const element = screen . findByText ( "Create workspace" )
183
+ const element = await screen . findByText ( "Create workspace" )
170
184
expect ( element ) . toBeDefined ( )
171
- const thirdParameter = screen . findByText (
185
+ const thirdParameter = await screen . findByText (
172
186
MockTemplateVersionParameter3 . description ,
173
187
)
174
188
expect ( thirdParameter ) . toBeDefined ( )
175
189
176
190
const thirdParameterField = await screen . findByLabelText (
177
191
MockTemplateVersionParameter3 . name ,
178
192
)
193
+ expect ( thirdParameterField ) . toBeDefined ( )
179
194
fireEvent . change ( thirdParameterField , {
180
195
target : { value : "1234" } ,
181
196
} )
197
+ fireEvent . submit ( thirdParameterField )
182
198
183
- const validationError = screen . findByText (
184
- MockTemplateVersionParameter3 . validation_error ,
199
+ const validationError = await screen . findByText (
200
+ MockTemplateVersionParameter3 . validation_error +
201
+ " (value does not match the pattern ^[a-z]{3}$)." ,
185
202
)
186
- expect ( validationError ) . toBeDefined ( )
203
+ expect ( validationError ) . toBeInTheDocument ( )
187
204
} )
188
205
} )
0 commit comments