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 ab09fd2

Browse files
author
Jaroslaw Zolnowski
committed
chore: merge master into feature/update-package-json-deps
2 parents 91c8aa1 + 3b935a7 commit ab09fd2

18 files changed

+427
-154
lines changed

‎.gitignore‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,7 @@ npm-debug.log*
2828
/node_modules
2929
/platforms
3030
/plugins
31+
32+
/test-results/
33+
/playwright-report/
34+
/playwright/.cache/

‎README.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ now.
4242

4343
`npm run start:ios`
4444

45+
### Start e2e tests on Desktop Chrome
46+
47+
`npm run e2e`
48+
4549
## Questions?
4650

4751
Check out our [GitHub Discussions](https://github.com/xlts-dev/angularjs-ionic-v1/discussions) section to

‎e2e/pages/account-page.js‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export class AccountPage {
2+
page;
3+
header;
4+
enableFriends;
5+
6+
constructor(page) {
7+
this.page = page;
8+
this.header = page.locator('ion-nav-bar').getByText('Account');
9+
this.enableFriends = page.getByRole('checkbox');
10+
}
11+
}

‎e2e/pages/chat-detail-page.js‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
export class ChatDetailPage {
2+
page;
3+
header;
4+
image;
5+
description
6+
7+
constructor(page) {
8+
this.page = page;
9+
this.header = page.locator('ion-nav-bar').getByText('Ben Sparrow');
10+
this.image = page.getByRole('img').first();
11+
this.description = page.getByRole('paragraph').first();
12+
}
13+
14+
async clickOnBackButton() {
15+
await this.page.getByRole('button').click();
16+
}
17+
}

‎e2e/pages/chats-page.js‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
export class ChatsPage {
2+
page;
3+
header;
4+
links;
5+
6+
constructor(page) {
7+
this.page = page;
8+
this.header = page.locator('ion-nav-bar').getByText('Chats');
9+
this.links = page.getByRole('link')
10+
}
11+
12+
async clickOnUser() {
13+
await this.links.first().click();
14+
}
15+
}

‎e2e/pages/dashboard-page.js‎

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
export class DashboardPage {
2+
page;
3+
header;
4+
5+
constructor(page) {
6+
this.page = page;
7+
this.header = page.getByText('Dashboard');
8+
}
9+
10+
async clickOnIonicMarketLink() {
11+
await this.page.getByTestId('ionic-market-link').click();
12+
}
13+
14+
async clickOnIonicForumLink() {
15+
await this.page.getByTestId('ionic-forum-link').click();
16+
}
17+
}

‎e2e/pages/tabs-page.js‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
export class TabsPage {
2+
page;
3+
4+
constructor(page) {
5+
this.page = page;
6+
}
7+
8+
async clickOnStatusTab() {
9+
await this.page.locator('a').filter({hasText: 'Status'}).click();
10+
}
11+
12+
async clickOnChatsTab() {
13+
await this.page.locator('a').filter({hasText: 'Chats'}).click();
14+
}
15+
16+
async clickOnAccountTab() {
17+
await this.page.locator('a').filter({hasText: 'Account'}).click();
18+
}
19+
}

‎e2e/tests/account.e2e.js‎

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import {expect, test} from '@playwright/test';
2+
import {AccountPage} from '../pages/account-page';
3+
import {TabsPage} from '../pages/tabs-page';
4+
import {PageErrorCollector} from '../utils/page-error-collector';
5+
6+
test.describe('account', () => {
7+
let pageErrorCollector;
8+
9+
test.beforeEach(async ({page}) => {
10+
pageErrorCollector = new PageErrorCollector(page)
11+
pageErrorCollector.listenForConsoleAndPageErrors(page);
12+
13+
await page.goto('');
14+
const tabsPage = new TabsPage(page);
15+
await tabsPage.clickOnAccountTab();
16+
});
17+
18+
test.afterEach(async ({ page }) => {
19+
expect(pageErrorCollector.errorLogs).toStrictEqual([]);
20+
});
21+
22+
test('TopNav', async ({page}) => {
23+
const accountPage = new AccountPage(page);
24+
25+
await expect(accountPage.header).toHaveText('Account');
26+
});
27+
28+
test('Enable Friends checkbox', async ({page}) => {
29+
const accountPage = new AccountPage(page);
30+
accountPage.enableFriends.check();
31+
await expect(accountPage.enableFriends.isChecked()).toBeTruthy();
32+
33+
await accountPage.enableFriends.click();
34+
await expect(accountPage.enableFriends).toHaveAttribute('aria-checked', 'false');
35+
36+
await accountPage.enableFriends.click();
37+
await expect(accountPage.enableFriends).toHaveAttribute('aria-checked', 'true');
38+
});
39+
})

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

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import {expect, test} from '@playwright/test';
2+
import {ChatDetailPage} from '../pages/chat-detail-page';
3+
import {ChatsPage} from '../pages/chats-page';
4+
import {TabsPage} from '../pages/tabs-page';
5+
import {PageErrorCollector} from '../utils/page-error-collector';
6+
7+
test.describe('chat detail', () => {
8+
let pageErrorCollector;
9+
10+
test.beforeEach(async ({page}) => {
11+
pageErrorCollector = new PageErrorCollector(page)
12+
pageErrorCollector.listenForConsoleAndPageErrors(page);
13+
14+
await page.goto('');
15+
const tabsPage = new TabsPage(page);
16+
await tabsPage.clickOnChatsTab();
17+
const chatsPage = new ChatsPage(page);
18+
await chatsPage.clickOnUser();
19+
});
20+
21+
test.afterEach(async ({ page }) => {
22+
expect(pageErrorCollector.errorLogs).toStrictEqual([]);
23+
});
24+
25+
test('details', async ({page}) => {
26+
const chatDetail = new ChatDetailPage(page);
27+
28+
await expect(chatDetail.header).toHaveText('Ben Sparrow');
29+
await expect(chatDetail.image).toHaveAttribute('src', 'img/ben.png');
30+
await expect(chatDetail.description).toHaveText('You on your way?');
31+
});
32+
33+
test('back to chats', async ({page}) => {
34+
const chatDetail = new ChatDetailPage(page);
35+
36+
await chatDetail.clickOnBackButton();
37+
await expect(page.url()).toContain('tab/chats');
38+
});
39+
})

‎e2e/tests/chats.e2e.js‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import {expect, test} from '@playwright/test';
2+
import {ChatsPage} from '../pages/chats-page';
3+
import {TabsPage} from '../pages/tabs-page';
4+
import {PageErrorCollector} from '../utils/page-error-collector';
5+
6+
test.describe('chats', () => {
7+
let pageErrorCollector;
8+
9+
test.beforeEach(async ({page}) => {
10+
pageErrorCollector = new PageErrorCollector(page)
11+
pageErrorCollector.listenForConsoleAndPageErrors(page);
12+
13+
await page.goto('');
14+
const tabsPage = new TabsPage(page);
15+
await tabsPage.clickOnChatsTab();
16+
});
17+
18+
test.afterEach(async ({ page }) => {
19+
expect(pageErrorCollector.errorLogs).toStrictEqual([]);
20+
});
21+
22+
test('topnav', async ({page}) => {
23+
const chatsPage = new ChatsPage(page);
24+
25+
await expect(chatsPage.header).toHaveText('Chats');
26+
});
27+
})

0 commit comments

Comments
(0)

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