universo-platform-2d
63 строки · 1.9 Кб
1import { test } from '@affine-test/kit/mobile';
2import { expect } from '@playwright/test';
3
4import { expandCollapsibleSection } from './utils';
5
6test('after loaded, will land on the home page', async ({ page }) => {
7await expect(page).toHaveURL(/.*\/home/);
8});
9
10test('app tabs is visible', async ({ page }) => {
11const tabs = page.locator('#app-tabs');
12await expect(tabs).toBeVisible();
13
14await expect(tabs.getByRole('tab', { name: 'home' })).toBeVisible();
15await expect(tabs.getByRole('tab', { name: 'all' })).toBeVisible();
16await expect(tabs.getByRole('tab', { name: 'search' })).toBeVisible();
17});
18
19test('recent docs', async ({ page }) => {
20const recentSection = await expandCollapsibleSection(page, 'recent');
21
22const docs = recentSection.getByTestId('doc-card');
23const firstDoc = docs.first();
24
25await expect(firstDoc).toBeVisible();
26
27const title = await firstDoc
28.getByTestId('doc-card-header')
29.getByRole('heading')
30.textContent();
31
32// when click favorite icon, will show in the favorites section
33await docs.getByRole('button', { name: 'favorite' }).first().click();
34
35const favList = await expandCollapsibleSection(page, 'favorites');
36await expect(favList).toBeVisible();
37
38if (title) {
39await expect(favList).toContainText(title);
40}
41});
42
43test('all tab', async ({ page }) => {
44const docsTab = page.locator('#app-tabs').getByRole('tab', { name: 'all' });
45await expect(docsTab).toBeVisible();
46
47await docsTab.click();
48
49const todayDocs = page.getByTestId('doc-card');
50expect(await todayDocs.count()).toBeGreaterThan(0);
51});
52
53test('search tab', async ({ page }) => {
54const searchTab = page
55.locator('#app-tabs')
56.getByRole('tab', { name: 'search' });
57await expect(searchTab).toBeVisible();
58
59await searchTab.click();
60
61const searchInput = page.getByTestId('search-header').getByRole('textbox');
62await expect(searchInput).toBeVisible();
63});
64