Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5923876

Browse files
author
Jarosław Żołnowski
authored
refactor: page error e2e tests (#11)
* refactor(e2e): override 'page' fixture to automatically capture errors * fix(e2e): rename test-reporter to test-with-error-capturing, fix lint issues * fix(test): lint issues, update imports to use utils/test-with-error-capturing.js file name
1 parent 3b935a7 commit 5923876

File tree

8 files changed

+31
-78
lines changed

8 files changed

+31
-78
lines changed

‎e2e/tests/account.e2e.js‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,15 @@
1-
import {expect,test} from '@playwright/test';
1+
import {expect} from '@playwright/test';
22
import {AccountPage} from '../pages/account-page';
33
import {TabsPage} from '../pages/tabs-page';
4-
import {PageErrorCollector} from '../utils/page-error-collector';
4+
import {test} from '../utils/test-with-error-capturing';
55

66
test.describe('account', () => {
7-
let pageErrorCollector;
8-
97
test.beforeEach(async ({page}) => {
10-
pageErrorCollector = new PageErrorCollector(page)
11-
pageErrorCollector.listenForConsoleAndPageErrors(page);
12-
138
await page.goto('');
149
const tabsPage = new TabsPage(page);
1510
await tabsPage.clickOnAccountTab();
1611
});
1712

18-
test.afterEach(async ({ page }) => {
19-
expect(pageErrorCollector.errorLogs).toStrictEqual([]);
20-
});
21-
2213
test('TopNav', async ({page}) => {
2314
const accountPage = new AccountPage(page);
2415

‎e2e/tests/chat-details.e2e.js‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,18 @@
1-
import {expect,test} from '@playwright/test';
1+
import {expect} from '@playwright/test';
22
import {ChatDetailPage} from '../pages/chat-detail-page';
33
import {ChatsPage} from '../pages/chats-page';
44
import {TabsPage} from '../pages/tabs-page';
5-
import {PageErrorCollector} from '../utils/page-error-collector';
5+
import {test} from '../utils/test-with-error-capturing';
66

77
test.describe('chat detail', () => {
8-
let pageErrorCollector;
9-
108
test.beforeEach(async ({page}) => {
11-
pageErrorCollector = new PageErrorCollector(page)
12-
pageErrorCollector.listenForConsoleAndPageErrors(page);
13-
149
await page.goto('');
1510
const tabsPage = new TabsPage(page);
1611
await tabsPage.clickOnChatsTab();
1712
const chatsPage = new ChatsPage(page);
1813
await chatsPage.clickOnUser();
1914
});
2015

21-
test.afterEach(async ({ page }) => {
22-
expect(pageErrorCollector.errorLogs).toStrictEqual([]);
23-
});
24-
2516
test('details', async ({page}) => {
2617
const chatDetail = new ChatDetailPage(page);
2718

‎e2e/tests/chats.e2e.js‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,15 @@
1-
import {expect,test} from '@playwright/test';
1+
import {expect} from '@playwright/test';
22
import {ChatsPage} from '../pages/chats-page';
33
import {TabsPage} from '../pages/tabs-page';
4-
import {PageErrorCollector} from '../utils/page-error-collector';
4+
import {test} from '../utils/test-with-error-capturing';
55

66
test.describe('chats', () => {
7-
let pageErrorCollector;
8-
97
test.beforeEach(async ({page}) => {
10-
pageErrorCollector = new PageErrorCollector(page)
11-
pageErrorCollector.listenForConsoleAndPageErrors(page);
12-
138
await page.goto('');
149
const tabsPage = new TabsPage(page);
1510
await tabsPage.clickOnChatsTab();
1611
});
1712

18-
test.afterEach(async ({ page }) => {
19-
expect(pageErrorCollector.errorLogs).toStrictEqual([]);
20-
});
21-
2213
test('topnav', async ({page}) => {
2314
const chatsPage = new ChatsPage(page);
2415

‎e2e/tests/dashboard.e2e.js‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,15 @@
1-
import {expect,test} from '@playwright/test';
1+
import {expect} from '@playwright/test';
22
import {DashboardPage} from '../pages/dashboard-page';
33
import {TabsPage} from '../pages/tabs-page';
4-
import {PageErrorCollector} from '../utils/page-error-collector';
4+
import {test} from '../utils/test-with-error-capturing';
55

66
test.describe('dashboard', () => {
7-
let pageErrorCollector;
8-
97
test.beforeEach(async ({page}) => {
10-
pageErrorCollector = new PageErrorCollector(page)
11-
pageErrorCollector.listenForConsoleAndPageErrors(page);
12-
138
await page.goto('');
149
const tabsPage = new TabsPage(page);
1510
await tabsPage.clickOnStatusTab();
1611
});
1712

18-
test.afterEach(async ({ page }) => {
19-
expect(pageErrorCollector.errorLogs).toStrictEqual([]);
20-
});
21-
2213
test('topnav', async ({page}) => {
2314
const dashboardPage = new DashboardPage(page);
2415

‎e2e/tests/tabs.e2e.js‎

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,12 @@
1-
import {test,expect} from '@playwright/test';
1+
import {expect} from '@playwright/test';
22
import {TabsPage} from '../pages/tabs-page';
3-
import {PageErrorCollector} from '../utils/page-error-collector';
3+
import {test} from '../utils/test-with-error-capturing';
44

55
test.describe('tabs', () => {
6-
let pageErrorCollector;
7-
86
test.beforeEach(async ({page}) => {
9-
pageErrorCollector = new PageErrorCollector(page)
10-
pageErrorCollector.listenForConsoleAndPageErrors(page);
11-
127
await page.goto('');
138
});
149

15-
test.afterEach(async ({ page }) => {
16-
expect(pageErrorCollector.errorLogs).toStrictEqual([]);
17-
});
18-
1910
test('tabs', async ({page}) => {
2011
const tabsPage = new TabsPage(page);
2112

‎e2e/utils/page-error-collector.js‎

Lines changed: 0 additions & 22 deletions
This file was deleted.
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import {test as base, expect} from '@playwright/test';
2+
3+
export const test = base.extend({
4+
page: async ({baseURL, page}, use) => {
5+
const errorLogs = [];
6+
7+
page.on('console', message => {
8+
if (message.type() === 'error') {
9+
errorLogs.push(message.text());
10+
}
11+
});
12+
13+
page.on('pageerror', err => {
14+
errorLogs.push(err.message);
15+
});
16+
17+
await use(page);
18+
expect(errorLogs).toStrictEqual([]);
19+
},
20+
});

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
},
4848
"scripts": {
4949
"preinstall": "npx npm-force-resolutions && npx playwright install",
50-
"postinstall": "tools/populate-lib.sh",
50+
"postinstall": "bash tools/populate-lib.sh",
5151
"start": "npm run start:web",
5252
"start:web": "ionic-v1 serve",
5353
"start:android": "ionic cordova run android -l",

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /