Files
file-online-preview/tests/e2e/README.md
kl d1c310ab63 test(e2e): expand archive format coverage (tar/tgz/7z/rar) (#720)
* test(e2e): expand archive coverage to tar/tgz/7z/rar

* test: address copilot archive fixture review feedback

* test(e2e): add rar smoke coverage and align archive deps

* test(e2e): make tgz fixture gzip header deterministic

* test(e2e): keep legacy zip temp dir ignored

* test(e2e): address remaining copilot review comments

* test(e2e): make 7z fixture generation deterministic and strict

* test(e2e): fail fast when sample.rar fixture is missing
2026-03-09 12:44:48 +08:00

1.7 KiB

kkFileView E2E MVP

This folder contains a first MVP of end-to-end automated tests.

What is covered

  • Basic preview smoke checks for common file types (txt/md/json/xml/csv/html/png)
  • Office Phase-2 smoke checks (docx/xlsx/pptx)
  • Archive smoke checks (zip/tar/tgz/7z/rar)
  • Basic endpoint reachability
  • Security regression checks for blocked internal-network hosts (10.*) on:
    • /onlinePreview
    • /getCorsFile
  • Basic performance smoke checks (configurable threshold): txt/docx/xlsx preview response time
  • CI combined run command available via npm run test:ci

Local run

  1. Build server jar:
mvn -q -pl server -DskipTests package
  1. Install deps + browser:
cd tests/e2e
npm install
npx playwright install --with-deps chromium
pip3 install -r requirements.txt

Prerequisite: ensure python3, zip, and 7z (or bsdtar as a fallback) are available in PATH for archive fixtures.

  1. Generate fixtures and start fixture server:
cd /path/to/kkFileView
npm run gen:all
cd tests/e2e/fixtures && python3 -m http.server 18080
  1. Start kkFileView in another terminal:
JAR_PATH=$(ls server/target/kkFileView-*.jar | head -n 1)
KK_TRUST_HOST='*' KK_NOT_TRUST_HOST='10.*,172.16.*,192.168.*' java -jar "$JAR_PATH"
  1. Run tests:
cd tests/e2e
KK_BASE_URL=http://127.0.0.1:8012 FIXTURE_BASE_URL=http://127.0.0.1:18080 npm test

Optional:

# smoke only (self-contained: will auto-generate fixtures)
npm run test:smoke

# perf smoke (self-contained; default threshold 15000ms)
E2E_MAX_PREVIEW_MS=15000 npm run test:perf

# CI-style combined run (single fixture generation)
E2E_MAX_PREVIEW_MS=20000 npm run test:ci