1
- import { test } from "@playwright/test" ;
1
+ import { Page , test } from "@playwright/test" ;
2
2
import { UIhelper } from "../utils/ui-helper" ;
3
3
import { Common } from "../utils/common" ;
4
+ import { expect } from "@playwright/test" ;
5
+ import { Catalog } from "../support/pages/catalog" ;
4
6
5
7
test . describe ( "TechDocs" , ( ) => {
6
8
let common : Common ;
7
9
let uiHelper : UIhelper ;
10
+ let catalog : Catalog ;
11
+
12
+ async function docsTextHighlight ( page : Page ) {
13
+ await page . evaluate ( ( ) => {
14
+ const shadowRoot = document . querySelector (
15
+ '[data-testid="techdocs-native-shadowroot"]' ,
16
+ ) ;
17
+ const element =
18
+ shadowRoot . shadowRoot . querySelector ( "article p" ) . firstChild ;
19
+ const range = document . createRange ( ) ;
20
+ const selection = window . getSelection ( ) ;
21
+ range . setStart ( element , 0 ) ;
22
+ range . setEnd ( element , 20 ) ;
23
+ selection . removeAllRanges ( ) ;
24
+ selection . addRange ( range ) ;
25
+ document . dispatchEvent ( new Event ( "selectionchange" ) ) ;
26
+ } ) ;
27
+ }
8
28
9
29
test . beforeEach ( async ( { page } ) => {
10
30
uiHelper = new UIhelper ( page ) ;
11
31
common = new Common ( page ) ;
32
+ catalog = new Catalog ( page ) ;
12
33
await common . loginAsGuest ( ) ;
13
34
} ) ;
14
35
@@ -17,11 +38,41 @@ test.describe("TechDocs", () => {
17
38
await uiHelper . openSidebar ( "Docs" ) ;
18
39
} ) ;
19
40
20
- test ( "Verify that TechDocs for Backstage Showcase works" , async ( {
41
+ test ( "Verify that TechDocs Docs page for Backstage Showcase works" , async ( {
42
+ page,
43
+ } ) => {
44
+ await uiHelper . openSidebarButton ( "Favorites" ) ;
45
+ await uiHelper . openSidebar ( "Docs" ) ;
46
+ await page . getByRole ( "link" , { name : "Backstage Showcase" } ) . click ( ) ;
47
+ await uiHelper . waitForTitle ( "Getting Started running RHDH" , 1 ) ;
48
+ } ) ;
49
+
50
+ test ( "Verify that TechDocs entity tab page for Backstage Showcase works" , async ( ) => {
51
+ await catalog . goToByName ( "Backstage Showcase" ) ;
52
+ await uiHelper . clickTab ( "Docs" ) ;
53
+ await uiHelper . waitForTitle ( "Getting Started running RHDH" , 1 ) ;
54
+ } ) ;
55
+
56
+ test ( "Verify that TechDocs Docs page for ReportIssue addon works" , async ( {
21
57
page,
22
58
} ) => {
23
59
await uiHelper . openSidebarButton ( "Favorites" ) ;
24
60
await uiHelper . openSidebar ( "Docs" ) ;
25
61
await page . getByRole ( "link" , { name : "Backstage Showcase" } ) . click ( ) ;
62
+ await page . waitForSelector ( "article a" ) ;
63
+ await docsTextHighlight ( page ) ;
64
+ const link = await page . waitForSelector ( "text=Open new Github issue" ) ;
65
+ expect ( await link ?. isVisible ( ) ) . toBeTruthy ( ) ;
66
+ } ) ;
67
+
68
+ test ( "Verify that TechDocs entity tab page for ReportIssue addon works" , async ( {
69
+ page,
70
+ } ) => {
71
+ await catalog . goToByName ( "Backstage Showcase" ) ;
72
+ await uiHelper . clickTab ( "Docs" ) ;
73
+ await page . waitForSelector ( "article a" ) ;
74
+ await docsTextHighlight ( page ) ;
75
+ const link = await page . waitForSelector ( "text=Open new Github issue" ) ;
76
+ expect ( await link ?. isVisible ( ) ) . toBeTruthy ( ) ;
26
77
} ) ;
27
78
} ) ;
0 commit comments