51 lines
2.7 KiB
TypeScript
51 lines
2.7 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test('侧栏菜单与资源独占空间、切换保留搜索并刷新恢复', async ({ page }) => {
|
|
await page.goto('/');
|
|
const menu = page.getByRole('tab', {name:'菜单', exact:true});
|
|
const resources = page.getByRole('tab', {name:'资源', exact:true});
|
|
await expect(menu).toHaveAttribute('aria-selected','true');
|
|
await expect(page.locator('.sidebar')).toHaveCSS('width','280px');
|
|
const nav = page.getByRole('navigation', {name:'工作空间菜单'});
|
|
await expect(nav).toBeVisible();
|
|
await expect(page.getByRole('region', {name:'资源树'})).not.toBeVisible();
|
|
await expect(nav.getByRole('button',{name:'代理管理',exact:true})).toHaveCSS('font-size','14px');
|
|
await page.getByRole('textbox',{name:'搜索菜单',exact:true}).fill('资产');
|
|
await resources.click();
|
|
await expect(nav).not.toBeVisible();
|
|
await expect(page.getByRole('region',{name:'资源树'})).toBeVisible();
|
|
await page.screenshot({path:'test-results/sidebar-resources-desktop.png'});
|
|
await menu.click();
|
|
await expect(page.getByRole('textbox',{name:'搜索菜单',exact:true})).toHaveValue('资产');
|
|
await menu.press('ArrowRight');
|
|
await expect(resources).toBeFocused();
|
|
await expect(resources).toHaveAttribute('aria-selected','true');
|
|
await page.reload();
|
|
await expect(resources).toHaveAttribute('aria-selected','true');
|
|
await resources.press('Home');
|
|
await expect(menu).toBeFocused();
|
|
await expect(nav).toBeVisible();
|
|
await page.screenshot({path:'test-results/sidebar-menu-desktop.png'});
|
|
});
|
|
|
|
test('侧栏宽度键盘可调整且手机可切换资源', async ({page}) => {
|
|
await page.goto('/');
|
|
const resize = page.getByRole('separator',{name:'调整侧栏宽度'});
|
|
await resize.press('ArrowRight');
|
|
await expect(page.locator('.sidebar')).toHaveCSS('width','296px');
|
|
await page.reload();
|
|
await expect(page.locator('.sidebar')).toHaveCSS('width','296px');
|
|
await resize.press('Home');
|
|
await expect(page.locator('.sidebar')).toHaveCSS('width','280px');
|
|
await page.setViewportSize({width:390,height:844});
|
|
await page.getByRole('tab',{name:'资源',exact:true}).click();
|
|
await page.getByRole('button',{name:'展开资源树',exact:true}).click();
|
|
await expect(page.getByRole('dialog',{name:'资源树',exact:true})).toBeVisible();
|
|
await page.keyboard.press('Escape');
|
|
await page.getByRole('tab',{name:'菜单',exact:true}).click();
|
|
const nav=page.getByRole('navigation',{name:'工作空间菜单'});
|
|
await nav.getByRole('button',{name:'代理管理',exact:true}).click();
|
|
await expect(page.getByRole('heading',{name:'代理管理',exact:true})).toBeVisible();
|
|
await expect.poll(()=>page.evaluate(()=>document.documentElement.scrollWidth-innerWidth)).toBeLessThanOrEqual(1);
|
|
});
|