Skip to content

Commit b7b6289

Browse files
committed
chore(e2e): migrate techdocs plugins e2e tests
Signed-off-by: Patrick Knight <pknight@redhat.com>
1 parent 51cecf6 commit b7b6289

6 files changed

Lines changed: 106 additions & 7 deletions

File tree

workspaces/backstage/e2e-tests/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"devDependencies": {
2525
"@eslint/js": "^9.39.2",
2626
"@playwright/test": "1.57.0",
27-
"@red-hat-developer-hub/e2e-test-utils": "1.1.15",
27+
"@red-hat-developer-hub/e2e-test-utils": "1.1.23",
2828
"@types/node": "^24.10.1",
2929
"dotenv": "^16.4.7",
3030
"eslint": "^9.39.2",

workspaces/backstage/e2e-tests/playwright.config.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,9 @@ export default defineConfig({
1717
name: "backstage-kubernetes",
1818
testMatch: /tests\/specs\/kubernetes-rbac\.spec\.ts/,
1919
},
20+
{
21+
name: "backstage-techdocs",
22+
testMatch: /tests\/specs\/techdocs\.spec\.ts/,
23+
},
2024
],
2125
});
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
catalog:
2+
import:
3+
entityFilename: catalog-info.yaml
4+
pullRequestBranchName: backstage-integration
5+
rules:
6+
- allow: [API, Component, Group, Location, Resource, System, Template]
7+
locations:
8+
- type: url
9+
target: https://github.com/redhat-developer/rhdh/blob/main/catalog-entities/all.yaml
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
import { expect, Page, test } from "@red-hat-developer-hub/e2e-test-utils/test";
2+
3+
test.describe("TechDocs", () => {
4+
test.beforeAll(async ({ rhdh }) => {
5+
await rhdh.configure({
6+
auth: "keycloak",
7+
appConfig: "tests/config/techdocs/app-config-rhdh.yaml",
8+
});
9+
10+
await rhdh.deploy();
11+
});
12+
13+
async function docsTextHighlight(page: Page) {
14+
await page.evaluate(() => {
15+
const host = document.querySelector(
16+
'[data-testid="techdocs-native-shadowroot"]',
17+
);
18+
const element = host?.shadowRoot?.querySelector("article p")?.firstChild;
19+
if (!element) return;
20+
const range = document.createRange();
21+
const selection = window.getSelection();
22+
range.setStart(element, 0);
23+
range.setEnd(element, 20);
24+
selection?.removeAllRanges();
25+
selection?.addRange(range);
26+
document.dispatchEvent(new Event("selectionchange"));
27+
});
28+
}
29+
30+
test.beforeEach(async ({ loginHelper }) => {
31+
await loginHelper.loginAsKeycloakUser();
32+
});
33+
34+
test("Verify that TechDocs is visible in sidebar", async ({ uiHelper }) => {
35+
await uiHelper.openSidebarButton("Favorites");
36+
await uiHelper.openSidebar("Docs");
37+
});
38+
39+
test("Verify that TechDocs Docs page for Red Hat Developer Hub works", async ({
40+
page,
41+
uiHelper,
42+
}) => {
43+
await uiHelper.openSidebarButton("Favorites");
44+
await uiHelper.openSidebar("Docs");
45+
await page.getByRole("link", { name: "Red Hat Developer Hub" }).click();
46+
await uiHelper.waitForTitle("Getting Started running RHDH", 1);
47+
});
48+
49+
test("Verify that TechDocs entity tab page for Red Hat Developer Hub works", async ({
50+
uiHelper,
51+
}) => {
52+
await uiHelper.openSidebar("Catalog");
53+
await uiHelper.selectMuiBox("Kind", "Component");
54+
await uiHelper.clickLink("Red Hat Developer Hub");
55+
await uiHelper.clickTab("Docs");
56+
await uiHelper.waitForTitle("Getting Started running RHDH", 1);
57+
});
58+
59+
test("Verify that TechDocs Docs page for ReportIssue addon works", async ({
60+
page,
61+
uiHelper,
62+
}) => {
63+
await uiHelper.openSidebarButton("Favorites");
64+
await uiHelper.openSidebar("Docs");
65+
await page.getByRole("link", { name: "Red Hat Developer Hub" }).click();
66+
await page.waitForSelector("article a");
67+
await docsTextHighlight(page);
68+
const link = await page.waitForSelector("text=Open new Github issue");
69+
expect(await link?.isVisible()).toBeTruthy();
70+
});
71+
72+
test("Verify that TechDocs entity tab page for ReportIssue addon works", async ({
73+
page,
74+
uiHelper,
75+
}) => {
76+
await uiHelper.openSidebar("Catalog");
77+
await uiHelper.selectMuiBox("Kind", "Component");
78+
await uiHelper.clickLink("Red Hat Developer Hub");
79+
await uiHelper.clickTab("Docs");
80+
await page.waitForSelector("article a");
81+
await docsTextHighlight(page);
82+
const link = await page.waitForSelector("text=Open new Github issue");
83+
expect(await link?.isVisible()).toBeTruthy();
84+
});
85+
});
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
{
22
"extends": "@red-hat-developer-hub/e2e-test-utils/tsconfig",
33
"compilerOptions": {
4-
"moduleResolution": "bundler"
4+
"moduleResolution": "bundler",
5+
"lib": ["dom", "es2022"]
56
},
67
"include": ["**/*.ts", "eslint.config.js"]
78
}

workspaces/backstage/e2e-tests/yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -303,9 +303,9 @@ __metadata:
303303
languageName: node
304304
linkType: hard
305305

306-
"@red-hat-developer-hub/e2e-test-utils@npm:1.1.15":
307-
version: 1.1.15
308-
resolution: "@red-hat-developer-hub/e2e-test-utils@npm:1.1.15"
306+
"@red-hat-developer-hub/e2e-test-utils@npm:1.1.23":
307+
version: 1.1.23
308+
resolution: "@red-hat-developer-hub/e2e-test-utils@npm:1.1.23"
309309
dependencies:
310310
"@axe-core/playwright": ^4.11.0
311311
"@backstage-community/plugin-rbac-common": 1.23.0
@@ -327,7 +327,7 @@ __metadata:
327327
zx: ^8.8.5
328328
peerDependencies:
329329
"@playwright/test": ^1.57.0
330-
checksum: 9b92ffbec69b77f263c875a9f3edb672fbe165f3cee8f84c5e2e7b9dd2428b693a2eb9b3375f42c0706960dd7ea2d434e7917f2eb5b6a3762d8f80c18a936c70
330+
checksum: c62c7029e19c1be0cbbee56eac95a4024898f3a58304d091bb381e6e679b3cc9da449cfa0ccd197722ba6da39fdf26332d8be9ae46d7097fc051e293c1ee2552
331331
languageName: node
332332
linkType: hard
333333

@@ -630,7 +630,7 @@ __metadata:
630630
dependencies:
631631
"@eslint/js": ^9.39.2
632632
"@playwright/test": 1.57.0
633-
"@red-hat-developer-hub/e2e-test-utils": 1.1.15
633+
"@red-hat-developer-hub/e2e-test-utils": 1.1.23
634634
"@types/node": ^24.10.1
635635
dotenv: ^16.4.7
636636
eslint: ^9.39.2

0 commit comments

Comments
 (0)