AFFiNE/tests/affine-mobile/e2e/detail.spec.ts

58 lines
2.0 KiB
TypeScript

import { test } from '@affine-test/kit/mobile';
import { expect, type Page } from '@playwright/test';
const openDocInfoModal = async (page: Page) => {
await page.click('[data-testid="detail-page-header-more-button"]');
await expect(page.getByRole('dialog')).toBeVisible();
await page.getByRole('menuitem', { name: 'view info' }).click();
await expect(page.getByTestId('mobile-menu-back-button')).toBeVisible();
};
test.beforeEach(async ({ page }) => {
const docsTab = page.locator('#app-tabs').getByRole('tab', { name: 'all' });
await expect(docsTab).toBeVisible();
await docsTab.click();
await page.getByTestId('doc-card').first().click();
await expect(page.locator('.affine-edgeless-viewport')).toBeVisible();
});
test('can open page view more menu', async ({ page }) => {
await page.click('[data-testid="detail-page-header-more-button"]');
await expect(page.getByRole('dialog')).toBeVisible();
});
test('switch to page mode', async ({ page }) => {
await page.click('[data-testid="detail-page-header-more-button"]');
await expect(page.getByRole('dialog')).toBeVisible();
await page.getByRole('menuitem', { name: 'Default to Page mode' }).click();
await expect(page.locator('.doc-title-container')).toBeVisible();
});
test('can show doc info', async ({ page }) => {
await openDocInfoModal(page);
await expect(page.getByRole('dialog')).toContainText('Created');
await expect(page.getByRole('dialog')).toContainText('Updated');
});
test('can add text property', async ({ page }) => {
await openDocInfoModal(page);
await expect(
page.getByRole('button', { name: 'Add property' })
).toBeVisible();
await page.getByRole('button', { name: 'Add property' }).click();
await page.getByRole('menuitem', { name: 'Text' }).click();
await expect(
page.getByTestId('mobile-menu-back-button').last()
).toBeVisible();
await page.getByTestId('mobile-menu-back-button').last().click();
await expect(page.getByTestId('mobile-menu-back-button')).toContainText(
'Write, Draw, Plan all at Once'
);
});