AFFiNE/tests/affine-local/e2e/settings.spec.ts

117 lines
3.6 KiB
TypeScript
Raw Normal View History

import { test } from '@affine-test/kit/playwright';
import { openHomePage } from '@affine-test/kit/utils/load-page';
import { waitForEditorLoad } from '@affine-test/kit/utils/page-logic';
import {
openAboutPanel,
openAppearancePanel,
openPluginsPanel,
openSettingModal,
openShortcutsPanel,
} from '@affine-test/kit/utils/setting';
2023-09-02 08:57:04 +03:00
import { createLocalWorkspace } from '@affine-test/kit/utils/workspace';
import { expect } from '@playwright/test';
test('Open settings modal', async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await openSettingModal(page);
const modal = page.getByTestId('setting-modal');
await expect(modal).toBeVisible();
});
test('change language using keyboard', async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await openSettingModal(page);
const locator = page.getByTestId('language-menu-button');
const oldName = await locator.textContent();
await locator.click();
await page.waitForTimeout(200);
await page.keyboard.press('ArrowDown', {
delay: 50,
});
await page.keyboard.press('Enter', {
delay: 50,
});
{
const newName = await locator.textContent();
expect(oldName).not.toBe(newName);
}
});
test('Change theme', async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await openSettingModal(page);
await openAppearancePanel(page);
const root = page.locator('html');
await page.getByTestId('light-theme-trigger').click();
const lightMode = await root.evaluate(element => element.dataset.theme);
expect(lightMode).toBe('light');
await page.getByTestId('dark-theme-trigger').click();
const darkMode = await root.evaluate(element => element.dataset.theme);
expect(darkMode).toBe('dark');
});
test('Change layout width', async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await openSettingModal(page);
await openAppearancePanel(page);
await page.getByTestId('full-width-layout-trigger').click();
const editorWrapper = page.locator('.editor-wrapper');
const className = await editorWrapper.getAttribute('class');
expect(className).toContain('full-screen');
});
test('Open shortcuts panel', async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await openSettingModal(page);
await openShortcutsPanel(page);
const title = page.getByTestId('keyboard-shortcuts-title');
await expect(title).toBeVisible();
});
test('Open plugins panel', async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await openSettingModal(page);
await openPluginsPanel(page);
const title = page.getByTestId('plugins-title');
await expect(title).toBeVisible();
});
test('Open about panel', async ({ page }) => {
await openHomePage(page);
await waitForEditorLoad(page);
await openSettingModal(page);
await openAboutPanel(page);
const title = page.getByTestId('about-title');
await expect(title).toBeVisible();
});
test('Different workspace should have different name in the setting panel', async ({
page,
}) => {
await openHomePage(page);
await waitForEditorLoad(page);
2023-09-02 08:57:04 +03:00
await createLocalWorkspace({ name: 'New Workspace 2' }, page);
await createLocalWorkspace({ name: 'New Workspace 3' }, page);
await openSettingModal(page);
await page.getByTestId('current-workspace-label').click();
2023-11-17 10:50:01 +03:00
await expect(page.getByTestId('workspace-name-input')).toHaveValue(
'New Workspace 3'
);
await page.getByText('New Workspace 2').click();
2023-11-17 10:50:01 +03:00
await expect(page.getByTestId('workspace-name-input')).toHaveValue(
'New Workspace 2'
);
});