Files
blog/tests/browser/site.spec.js
T

25 lines
1.4 KiB
JavaScript

import {test,expect} from '@playwright/test';
test('应用导航、搜索、旧文章与手机布局', async ({page})=>{
const errors=[]; page.on('pageerror',e=>errors.push(e.message));
await page.goto('/');
await expect(page.locator('#app-grid .app-card')).toHaveCount(23);
expect(await page.evaluate(()=>document.documentElement.scrollWidth<=innerWidth)).toBe(true);
await page.getByRole('button',{name:'音乐',exact:true}).click();
await expect(page.locator('#app-grid .app-card:visible')).toHaveCount(3);
await page.getByRole('button',{name:'全部',exact:true}).click();
await page.getByRole('searchbox').fill('hedgehog');
await expect(page.locator('#app-grid .app-card:visible')).toHaveCount(1);
await page.getByRole('searchbox').fill('nothing-to-match');
await expect(page.locator('#empty')).toBeVisible();
await page.goto('/posts/claude-code-goal/');
await expect(page.locator('h1')).toContainText('Claude Code');
expect(await page.evaluate(()=>document.documentElement.scrollWidth<=innerWidth)).toBe(true);
expect(errors).toEqual([]);
});
test('没有 JavaScript 仍能访问所有入口',async({browser})=>{
const context=await browser.newContext({javaScriptEnabled:false});
const page=await context.newPage();await page.goto('http://127.0.0.1:4176/');
await expect(page.locator('#app-grid .app-card:visible')).toHaveCount(23);
await context.close();
});