test(e2e): harden fixture preflight and remove duplicate generation

This commit is contained in:
kl
2026-03-04 13:16:14 +08:00
parent 3b0f7af382
commit 30127aae7c
3 changed files with 24 additions and 12 deletions

View File

@@ -55,11 +55,6 @@ jobs:
npm install
npx playwright install --with-deps chromium
- name: Generate fixtures
run: |
node tests/e2e/scripts/generate-fixtures.mjs
python3 tests/e2e/scripts/generate-office-fixtures.py
- name: Start fixture server
run: |
cd tests/e2e/fixtures

View File

@@ -24,8 +24,9 @@ if (!fs.existsSync(zipPath)) {
fs.writeFileSync(path.join(zipWork, 'inner.txt'), 'kkFileView zip inner file');
try {
execFileSync('zip', ['-X', '-q', '-r', zipPath, 'inner.txt'], { cwd: zipWork });
} catch {
// fallback: keep going if zip is not available locally
} catch (err) {
console.error('Failed to create sample.zip fixture. Ensure "zip" is installed and available in PATH.');
throw err instanceof Error ? err : new Error(String(err));
}
}

View File

@@ -13,12 +13,28 @@ async function openPreview(request: any, fileUrl: string) {
test.beforeAll(async () => {
const api = await playwrightRequest.newContext();
const required = ['sample.txt', 'sample.docx', 'sample.xlsx', 'sample.pptx', 'sample.zip'];
for (const name of required) {
const resp = await api.get(`${fixtureBase}/${name}`);
expect(resp.ok(), `fixture missing or unavailable: ${name}`).toBeTruthy();
const required = [
'sample.txt',
'sample.md',
'sample.json',
'sample.xml',
'sample.csv',
'sample.html',
'sample.png',
'sample.docx',
'sample.xlsx',
'sample.pptx',
'sample.zip',
];
try {
for (const name of required) {
const resp = await api.get(`${fixtureBase}/${name}`);
expect(resp.ok(), `fixture missing or unavailable: ${name}`).toBeTruthy();
}
} finally {
await api.dispose();
}
await api.dispose();
});
test('01 home/index reachable', async ({ request }) => {