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(); });