Skip to content

Commit d259465

Browse files
Updated and refactored tests
1 parent 5ae24db commit d259465

File tree

3 files changed

+50
-63
lines changed

3 files changed

+50
-63
lines changed

playwright/pageobjects/web-reader.page.ts

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ class WebReaderPage {
2626
readonly nextPageButton: Locator;
2727
readonly firstChapter: Locator;
2828
readonly lastChapter: Locator;
29+
readonly chapterName: Locator;
30+
readonly chapterHeading: Locator;
31+
readonly specificText: Locator;
32+
readonly pageOne: Locator;
33+
readonly pageTwo: Locator;
2934

3035
constructor(page: Page) {
3136
this.page = page;
@@ -71,6 +76,28 @@ class WebReaderPage {
7176
this.paginatedStyle = page.getByText('Paginated', { exact: true });
7277
this.scrollingStyle = page.getByText('Scrolling', { exact: true });
7378

79+
// content
80+
this.chapterName = page.getByText(
81+
'EXTRACTS (Supplied by a Sub-Sub-Librarian).'
82+
);
83+
this.chapterHeading = page
84+
.locator('iframe[title="Moby-Dick"]')
85+
.contentFrame()
86+
.getByRole('heading', {
87+
name: 'EXTRACTS (Supplied by a Sub-Sub-Librarian).',
88+
level: 1,
89+
});
90+
this.specificText = page
91+
.locator('iframe[title="Moby-Dick"]')
92+
.contentFrame()
93+
.getByText('—WHALE SONG.');
94+
this.pageOne = page
95+
.locator('#mainContent')
96+
.locator('[data-page-number="1"]');
97+
this.pageTwo = page
98+
.locator('#mainContent')
99+
.locator('[data-page-number="2"]');
100+
74101
// footer
75102
this.previousPageButton = page.getByLabel('Previous Page');
76103
this.nextPageButton = page.getByLabel('Next Page');
@@ -109,29 +136,17 @@ class HtmlReaderPage extends WebReaderPage {
109136

110137
async scrollDown(): Promise<void> {
111138
await this.tocButton.click();
112-
await this.page
113-
.getByText('EXTRACTS (Supplied by a Sub-Sub-Librarian).')
114-
.click();
115-
await this.page
116-
.locator('iframe[title="Moby-Dick"]')
117-
.contentFrame()
118-
.getByText('—WHALE SONG.')
119-
.scrollIntoViewIfNeeded();
139+
//await expect(this.tocButton).toBeVisible();
140+
await this.chapterName.click();
141+
await expect(await this.tocButton.getAttribute('aria-expanded')).toBe(
142+
'false'
143+
);
144+
await this.specificText.scrollIntoViewIfNeeded();
120145
}
121146

122147
async scrollUp(): Promise<void> {
123-
await this.page
124-
.locator('iframe[title="Moby-Dick"]')
125-
.contentFrame()
126-
.getByText('—WHALE SONG.')
127-
.scrollIntoViewIfNeeded();
128-
await this.page
129-
.locator('iframe[title="Moby-Dick"]')
130-
.contentFrame()
131-
.getByRole('heading', {
132-
name: 'EXTRACTS (Supplied by a Sub-Sub-Librarian).',
133-
})
134-
.scrollIntoViewIfNeeded();
148+
await this.specificText.scrollIntoViewIfNeeded();
149+
await this.chapterHeading.scrollIntoViewIfNeeded();
135150
}
136151
}
137152

@@ -168,18 +183,12 @@ class PdfReaderPage extends WebReaderPage {
168183
}
169184

170185
async scrollDown(): Promise<void> {
171-
await this.page
172-
.locator('#mainContent')
173-
.locator('[data-page-number="2"]')
174-
.scrollIntoViewIfNeeded();
186+
await this.pageTwo.scrollIntoViewIfNeeded();
175187
}
176188

177189
async scrollUp(): Promise<void> {
178190
await this.scrollDown();
179-
await this.page
180-
.locator('#mainContent')
181-
.locator('[data-page-number="1"]')
182-
.scrollIntoViewIfNeeded();
191+
await this.pageOne.scrollIntoViewIfNeeded();
183192
}
184193
}
185194

playwright/tests/html-reader-settings.spec.ts

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ test.describe('Test HTML pub', () => {
8484
await htmlReaderPage.scrollingStyle.click();
8585
await expect(htmlReaderPage.scrollingStyle).toBeChecked();
8686
await htmlReaderPage.scrollDown();
87+
await htmlReaderPage.scrollUp();
88+
await expect(htmlReaderPage.settingsButton).toBeVisible();
8789
await htmlReaderPage.settingsButton.click();
8890
await htmlReaderPage.paginatedStyle.click();
8991
await expect(htmlReaderPage.paginatedStyle).toBeChecked();
@@ -95,20 +97,12 @@ test.describe('Test HTML pub', () => {
9597
const htmlReaderPage = new HtmlReaderPage(page);
9698
await htmlReaderPage.loadPage('/html/moby-epub3');
9799
await htmlReaderPage.tocButton.click();
98-
await htmlReaderPage.page
99-
.getByText('EXTRACTS (Supplied by a Sub-Sub-Librarian).')
100-
.click();
100+
await htmlReaderPage.chapterName.click();
101101
await htmlReaderPage.settingsButton.click();
102102
await htmlReaderPage.scrollingStyle.click();
103-
const chapterName = page
104-
.locator('iframe[title="Moby-Dick"]')
105-
.contentFrame()
106-
.getByRole('heading', {
107-
name: 'EXTRACTS (Supplied by a Sub-Sub-Librarian).',
108-
});
109-
await expect(chapterName).toBeVisible();
103+
await expect(htmlReaderPage.chapterName).toBeVisible();
110104
await htmlReaderPage.paginatedStyle.click();
111-
await expect(chapterName).toBeVisible();
105+
await expect(htmlReaderPage.chapterName).toBeVisible();
112106
});
113107

114108
test('Maintain changed settings when exit and reenter reader', async ({

playwright/tests/pdf-reader-settings.spec.ts

Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@ import { PdfReaderPage } from '../pageobjects/web-reader.page.ts';
44
test.describe('Test PDF pub', () => {
55
test('Confirm reader settings are visible', async ({ page }) => {
66
const pdfReaderPage = new PdfReaderPage(page);
7-
await pdfReaderPage.loadPage(
8-
'https://nypl-web-reader.vercel.app/pdf/collection'
9-
); // temporary
7+
await pdfReaderPage.loadPage('/pdf/collection');
108
await expect(pdfReaderPage.fullScreenButton).toBeVisible();
119
await pdfReaderPage.settingsButton.click();
1210
await expect(pdfReaderPage.zoomInButton).toBeVisible();
@@ -17,9 +15,7 @@ test.describe('Test PDF pub', () => {
1715

1816
test('Open and close reader settings', async ({ page }) => {
1917
const pdfReaderPage = new PdfReaderPage(page);
20-
await pdfReaderPage.loadPage(
21-
'https://nypl-web-reader.vercel.app/pdf/collection'
22-
); // temporary
18+
await pdfReaderPage.loadPage('/pdf/collection');
2319
await pdfReaderPage.settingsButton.click();
2420
await expect(pdfReaderPage.zoomInButton).toBeVisible();
2521
await pdfReaderPage.settingsButton.click();
@@ -28,18 +24,14 @@ test.describe('Test PDF pub', () => {
2824

2925
test('Displays default settings', async ({ page }) => {
3026
const pdfReaderPage = new PdfReaderPage(page);
31-
await pdfReaderPage.loadPage(
32-
'https://nypl-web-reader.vercel.app/pdf/collection'
33-
); // temporary
27+
await pdfReaderPage.loadPage('/pdf/collection');
3428
await pdfReaderPage.settingsButton.click();
3529
await expect(pdfReaderPage.paginatedStyle).toBeChecked();
3630
});
3731

3832
test('Change pagination style', async ({ page }) => {
3933
const pdfReaderPage = new PdfReaderPage(page);
40-
await pdfReaderPage.loadPage(
41-
'https://nypl-web-reader.vercel.app/pdf/collection'
42-
); // temporary
34+
await pdfReaderPage.loadPage('/pdf/collection');
4335
await pdfReaderPage.settingsButton.click();
4436
await pdfReaderPage.scrollingStyle.click();
4537
await expect(pdfReaderPage.scrollingStyle).toBeChecked();
@@ -51,35 +43,27 @@ test.describe('Test PDF pub', () => {
5143

5244
test('Zoom in', async ({ page }) => {
5345
const pdfReaderPage = new PdfReaderPage(page);
54-
await pdfReaderPage.loadPage(
55-
'https://nypl-web-reader.vercel.app/pdf/collection'
56-
); // temporary
46+
await pdfReaderPage.loadPage('/pdf/collection');
5747
await expect(await pdfReaderPage.zoomIn()).toBeTruthy;
5848
});
5949

6050
test('Zoom out', async ({ page }) => {
6151
const pdfReaderPage = new PdfReaderPage(page);
62-
await pdfReaderPage.loadPage(
63-
'https://nypl-web-reader.vercel.app/pdf/collection'
64-
); // temporary
52+
await pdfReaderPage.loadPage('/pdf/collection');
6553
await expect(await pdfReaderPage.zoomOut()).toBeTruthy;
6654
});
6755

6856
test('Open and exit full screen', async ({ page }) => {
6957
const pdfReaderPage = new PdfReaderPage(page);
70-
await pdfReaderPage.loadPage(
71-
'https://nypl-web-reader.vercel.app/pdf/collection'
72-
); // temporary
58+
await pdfReaderPage.loadPage('/pdf/collection');
7359
await pdfReaderPage.fullScreenButton.click();
7460
await pdfReaderPage.exitFullScreenButton.click();
7561
await expect(pdfReaderPage.fullScreenButton).toBeVisible();
7662
});
7763

7864
test('Change settings in full screen', async ({ page }) => {
7965
const pdfReaderPage = new PdfReaderPage(page);
80-
await pdfReaderPage.loadPage(
81-
'https://nypl-web-reader.vercel.app/pdf/collection'
82-
); // temporary
66+
await pdfReaderPage.loadPage('/pdf/collection');
8367
await pdfReaderPage.fullScreenButton.click();
8468
await pdfReaderPage.changeSettings();
8569
});

0 commit comments

Comments
 (0)