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

Function fillParameters

site/e2e/helpers.ts:1046–1108  ·  view source on GitHub ↗
(
	page: Page,
	richParameters: RichParameter[] = [],
	buildParameters: WorkspaceBuildParameter[] = [],
)

Source from the content-addressed store, hash-verified

1044};
1045
1046const fillParameters = async (
1047 page: Page,
1048 richParameters: RichParameter[] = [],
1049 buildParameters: WorkspaceBuildParameter[] = [],
1050) => {
1051 for (const buildParameter of buildParameters) {
1052 const richParameter = richParameters.find(
1053 (richParam) => richParam.name === buildParameter.name,
1054 );
1055 if (!richParameter) {
1056 throw new Error(
1057 "build parameter is expected to be present in rich parameter schema",
1058 );
1059 }
1060
1061 const parameterLabel = page.getByTestId(
1062 `parameter-field-${richParameter.displayName}`,
1063 );
1064 await expect(parameterLabel).toBeVisible();
1065
1066 if (richParameter.options.length > 0) {
1067 const parameterValue = parameterLabel.getByRole("button", {
1068 name: buildParameter.value,
1069 });
1070 await parameterValue.click();
1071 continue;
1072 }
1073
1074 switch (richParameter.type) {
1075 case "bool":
1076 {
1077 const parameterField = parameterLabel.locator("button");
1078 await parameterField.click();
1079 }
1080 break;
1081 case "string":
1082 case "number":
1083 {
1084 const parameterField = parameterLabel.locator("input");
1085 // Dynamic parameters can hydrate after initial render and
1086 // overwrite an early fill. Re-apply until the desired value
1087 // is stable.
1088 for (let attempt = 0; attempt < 3; attempt++) {
1089 await parameterField.fill(buildParameter.value);
1090 try {
1091 await expect(parameterField).toHaveValue(buildParameter.value, {
1092 timeout: 1000,
1093 });
1094 break;
1095 } catch (error) {
1096 if (attempt === 2) {
1097 throw error;
1098 }
1099 }
1100 }
1101 }
1102 break;
1103 default:

Callers 4

createWorkspaceFunction · 0.85
updateWorkspaceFunction · 0.85

Calls 1

findMethod · 0.80

Tested by

no test coverage detected