@red-hat-developer-hub/e2e-test-utils 2.1.17 → 2.1.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/deployment/rhdh/config/helm/value_file.yaml +8 -10
- package/dist/deployment/rhdh/deployment.d.ts.map +1 -1
- package/dist/deployment/rhdh/deployment.js +5 -7
- package/dist/playwright/helpers/common.d.ts +1 -0
- package/dist/playwright/helpers/common.d.ts.map +1 -1
- package/dist/playwright/helpers/common.js +11 -5
- package/package.json +1 -1
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
lightspeed:
|
|
10
|
-
enabled: false
|
|
1
|
+
extraAppConfig:
|
|
2
|
+
- configMapRef: app-config-rhdh
|
|
3
|
+
filename: app-config-rhdh.yaml
|
|
4
|
+
extraEnvFrom:
|
|
5
|
+
- secretRef:
|
|
6
|
+
name: rhdh-secrets
|
|
7
|
+
intelligentAssistant:
|
|
8
|
+
enabled: false
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAyB1E,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IAClB,SAAS,yBAAgC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;gBAE9B,SAAS,EAAE,MAAM;IAKvB,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA0CpD,eAAe;YAmBf,aAAa;IAwB3B,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAM5B;IAEX;;;OAGG;YACW,iBAAiB;IAY/B;;OAEG;YACW,uBAAuB;IAgBrC;;;;;;;;OAQG;YACW,0BAA0B;YAoC1B,oBAAoB;YAWpB,eAAe;
|
|
1
|
+
{"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../src/deployment/rhdh/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAyB1E,OAAO,KAAK,EACV,iBAAiB,EACjB,gBAAgB,EAGjB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IAClB,SAAS,yBAAgC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,gBAAgB,CAAC;gBAE9B,SAAS,EAAE,MAAM;IAKvB,MAAM,CAAC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YA0CpD,eAAe;YAmBf,aAAa;IAwB3B,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAM5B;IAEX;;;OAGG;YACW,iBAAiB;IAY/B;;OAEG;YACW,uBAAuB;IAgBrC;;;;;;;;OAQG;YACW,0BAA0B;YAoC1B,oBAAoB;YAWpB,eAAe;YA2Df,mBAAmB;IAmCjC,OAAO,KAAK,cAAc,GAIzB;IAEK,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAWrC;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOpC,cAAc,CAAC,OAAO,GAAE,MAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BpD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;YAIjB,iBAAiB;YASjB,oBAAoB;IAsClC;;;OAGG;YACW,0BAA0B;IAwCxC,OAAO,CAAC,sBAAsB;IAsCxB,SAAS,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrE,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,SAAS;CAMlB"}
|
|
@@ -155,10 +155,7 @@ export class RHDHDeployment {
|
|
|
155
155
|
const valueFileObject = (await mergeYamlFilesIfExists(helmValuePaths));
|
|
156
156
|
this._logBoxen("Value File", valueFileObject);
|
|
157
157
|
// Merge dynamic plugins into the values file (including auth-specific plugins)
|
|
158
|
-
|
|
159
|
-
valueFileObject.global = {};
|
|
160
|
-
}
|
|
161
|
-
valueFileObject.global.dynamic = await this._buildDynamicPluginsConfig();
|
|
158
|
+
valueFileObject.dynamicPlugins = await this._buildDynamicPluginsConfig();
|
|
162
159
|
// Set catalog index image if CATALOG_INDEX_IMAGE env var is provided.
|
|
163
160
|
// The catalog index provides dynamic-plugins.default.yaml with default plugin
|
|
164
161
|
// configurations and versions for the RHDH release.
|
|
@@ -166,16 +163,17 @@ export class RHDHDeployment {
|
|
|
166
163
|
if (catalogIndexImage) {
|
|
167
164
|
const [imageRef, tag] = catalogIndexImage.split(":");
|
|
168
165
|
const firstSlash = imageRef.indexOf("/");
|
|
169
|
-
valueFileObject.
|
|
166
|
+
valueFileObject.catalogIndex = {
|
|
170
167
|
image: {
|
|
171
168
|
registry: imageRef.substring(0, firstSlash),
|
|
172
169
|
repository: imageRef.substring(firstSlash + 1),
|
|
173
170
|
tag: tag || "latest",
|
|
171
|
+
digest: "",
|
|
174
172
|
},
|
|
175
173
|
};
|
|
176
174
|
this._log(`Catalog index image: ${catalogIndexImage}`);
|
|
177
175
|
}
|
|
178
|
-
this._logBoxen("Dynamic Plugins", valueFileObject.
|
|
176
|
+
this._logBoxen("Dynamic Plugins", valueFileObject.dynamicPlugins);
|
|
179
177
|
// Escape {{inherit}} for Helm's Go template engine.
|
|
180
178
|
// The RHDH chart uses `tpl` on dynamic plugin values, so {{inherit}} would be
|
|
181
179
|
// interpreted as a Go template action. Escaping to {{ "{{inherit}}" }} produces
|
|
@@ -188,7 +186,7 @@ export class RHDHDeployment {
|
|
|
188
186
|
await $ `
|
|
189
187
|
helm upgrade redhat-developer-hub -i "${process.env.CHART_URL || CHART_URL}" --version "${chartVersion}" \
|
|
190
188
|
-f "${valueFilePath}" \
|
|
191
|
-
--set
|
|
189
|
+
--set openshift.clusterRouterBase="${process.env.K8S_CLUSTER_ROUTER_BASE}" \
|
|
192
190
|
--namespace="${this.deploymentConfig.namespace}"
|
|
193
191
|
`;
|
|
194
192
|
this._log(`Helm deployment completed successfully`);
|
|
@@ -94,6 +94,7 @@ export declare class LoginHelper {
|
|
|
94
94
|
githubLogin(username: string, password: string, twofactor: string): Promise<string>;
|
|
95
95
|
githubLoginFromSettingsPage(username: string, password: string, twofactor: string): Promise<string>;
|
|
96
96
|
microsoftAzureLogin(username: string, password: string): Promise<"Already logged in" | "Login successful" | "User does not exist">;
|
|
97
|
+
private waitForSidebar;
|
|
97
98
|
}
|
|
98
99
|
export declare function setupBrowser(browser: Browser, testInfo: TestInfo): Promise<{
|
|
99
100
|
page: Page;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/playwright/helpers/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOhF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAExE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAQzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC1B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAQ/B;AAED,qBAAa,WAAW;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;gBAEP,IAAI,EAAE,IAAI;IAKhB,YAAY;IAcZ,OAAO;YAMC,aAAa;IA2CrB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAOnE;;;OAGG;IACG,mBAAmB,CACvB,MAAM,GAAE,MAAkC,EAC1C,QAAQ,GAAE,MAAkC;IAoBxC,iBAAiB,CACrB,MAAM,GAAE,MAA+C;YAa3C,mBAAmB;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/playwright/helpers/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOhF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGxD;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAExE,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAQzE;AAED;;;;;;;;GAQG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CAAC,CAAC,EAC3C,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACnB,OAAO,CAAC,CAAC,CAAC,CAYZ;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAC1B,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAQ/B;AAED,qBAAa,WAAW;IACtB,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;gBAEP,IAAI,EAAE,IAAI;IAKhB,YAAY;IAcZ,OAAO;YAMC,aAAa;IA2CrB,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAOnE;;;OAGG;IACG,mBAAmB,CACvB,MAAM,GAAE,MAAkC,EAC1C,QAAQ,GAAE,MAAkC;IAoBxC,iBAAiB,CACrB,MAAM,GAAE,MAA+C;YAa3C,mBAAmB;YAuCnB,oBAAoB;IAW5B,4BAA4B;YASpB,uBAAuB;IAgB/B,YAAY,CAAC,KAAK,EAAE,MAAM;IA2B1B,2BAA2B,CAAC,KAAK,UAAQ;IAU/C,mBAAmB,IAAI,MAAM;IAIvB,mBAAmB;IAgBzB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAevC,eAAe,IAAI,MAAM;IAKnB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;YAqCxC,sBAAsB;IAoD9B,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAYjE,2BAA2B,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM;IAYb,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;YA4C9C,cAAc;CAO7B;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ;;;GAWtE"}
|
|
@@ -123,7 +123,7 @@ export class LoginHelper {
|
|
|
123
123
|
});
|
|
124
124
|
await this.uiHelper.verifyHeading("Select a sign-in method");
|
|
125
125
|
await this.uiHelper.clickButton("Enter");
|
|
126
|
-
await this.
|
|
126
|
+
await this.waitForSidebar();
|
|
127
127
|
}
|
|
128
128
|
async signOut() {
|
|
129
129
|
await this.page.click(SETTINGS_PAGE_COMPONENTS.userSettingsMenu);
|
|
@@ -181,7 +181,7 @@ export class LoginHelper {
|
|
|
181
181
|
}
|
|
182
182
|
const popup = await popupPromise;
|
|
183
183
|
await this.logintoKeycloak(popup, userid, password);
|
|
184
|
-
await this.
|
|
184
|
+
await this.waitForSidebar();
|
|
185
185
|
}
|
|
186
186
|
async loginAsGithubUser(userid = process.env.VAULT_GH_USER_ID) {
|
|
187
187
|
const sessionFileName = githubSessionFile(userid);
|
|
@@ -204,8 +204,7 @@ export class LoginHelper {
|
|
|
204
204
|
await this.uiHelper.waitForLoad(12000);
|
|
205
205
|
await this.uiHelper.clickButton("Sign In");
|
|
206
206
|
// Wait for either: sidebar appears (auto-login) or popup opens (needs auth)
|
|
207
|
-
const navPromise = this.
|
|
208
|
-
.waitForSelector("nav a", { timeout: 15_000 })
|
|
207
|
+
const navPromise = this.waitForSidebar(15_000)
|
|
209
208
|
.then(() => "nav")
|
|
210
209
|
.catch(() => null);
|
|
211
210
|
const popupPromise = this.page
|
|
@@ -227,7 +226,7 @@ export class LoginHelper {
|
|
|
227
226
|
await this.uiHelper.waitForLoad(240000);
|
|
228
227
|
await this.uiHelper.clickButton("Sign In");
|
|
229
228
|
await this.checkAndReauthorizeGithubApp();
|
|
230
|
-
await this.
|
|
229
|
+
await this.waitForSidebar(10000);
|
|
231
230
|
await writeStorageStateAtomically(this.page, sessionFileName);
|
|
232
231
|
console.log(`Authentication state saved for user: ${userid}`);
|
|
233
232
|
}
|
|
@@ -461,6 +460,13 @@ export class LoginHelper {
|
|
|
461
460
|
}
|
|
462
461
|
}
|
|
463
462
|
}
|
|
463
|
+
async waitForSidebar(timeout = 30_000) {
|
|
464
|
+
return this.page
|
|
465
|
+
.getByLabel("sidebar nav")
|
|
466
|
+
.getByRole("link")
|
|
467
|
+
.first()
|
|
468
|
+
.waitFor({ state: "visible", timeout });
|
|
469
|
+
}
|
|
464
470
|
}
|
|
465
471
|
export async function setupBrowser(browser, testInfo) {
|
|
466
472
|
const context = await browser.newContext({
|