MCPcopy Index your code
hub / github.com/coder/coder / verifyParameters

Function verifyParameters

site/e2e/helpers.ts:168–252  ·  view source on GitHub ↗
(
	page: Page,
	workspaceName: string,
	richParameters: RichParameter[],
	expectedBuildParameters: WorkspaceBuildParameter[],
)

Source from the content-addressed store, hash-verified

166};
167
168export const verifyParameters = async (
169 page: Page,
170 workspaceName: string,
171 richParameters: RichParameter[],
172 expectedBuildParameters: WorkspaceBuildParameter[],
173) => {
174 const user = currentUser(page);
175 // Use networkidle to ensure all API responses (workspace data, build
176 // parameters) are settled before verifying values. Using domcontentloaded
177 // can cause the form to render with stale React Query cache data.
178 await page.goto(`/@${user.username}/${workspaceName}/settings/parameters`, {
179 waitUntil: "networkidle",
180 });
181
182 await Promise.all(
183 expectedBuildParameters.map(
184 async (buildParameter: WorkspaceBuildParameter) => {
185 const richParameter = richParameters.find(
186 (richParam) => richParam.name === buildParameter.name,
187 );
188 if (!richParameter) {
189 throw new Error(
190 "build parameter is expected to be present in rich parameter schema",
191 );
192 }
193
194 const parameterLabel = page.getByTestId(
195 `parameter-field-${richParameter.displayName}`,
196 );
197
198 await expect(parameterLabel).toBeVisible({
199 timeout: 10_000,
200 });
201
202 if (richParameter.options.length > 0) {
203 const parameterValue = parameterLabel.getByLabel(
204 buildParameter.value,
205 );
206 const value = await parameterValue.isChecked();
207 expect(value).toBe(true);
208 return;
209 }
210
211 switch (richParameter.type) {
212 case "bool":
213 {
214 // Use auto-retrying assertions to avoid capturing
215 // a stale default value before data hydration
216 // completes.
217 const parameterField = parameterLabel.locator("input");
218 if (buildParameter.value === "true") {
219 await expect(parameterField).toBeChecked({
220 timeout: 15_000,
221 });
222 } else if (buildParameter.value === "false") {
223 await expect(parameterField).not.toBeChecked({
224 timeout: 15_000,
225 });

Calls 3

currentUserFunction · 0.85
allMethod · 0.80
findMethod · 0.80

Tested by

no test coverage detected