mirror of
https://gitee.com/kekingcn/file-online-preview.git
synced 2026-03-13 20:53:47 +08:00
* 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
70 lines
1.7 KiB
Java
70 lines
1.7 KiB
Java
# 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:
|
|
|
|
```bash
|
|
mvn -q -pl server -DskipTests package
|
|
```
|
|
|
|
2. Install deps + browser:
|
|
|
|
```bash
|
|
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.
|
|
|
|
3. Generate fixtures and start fixture server:
|
|
|
|
```bash
|
|
cd /path/to/kkFileView
|
|
npm run gen:all
|
|
cd tests/e2e/fixtures && python3 -m http.server 18080
|
|
```
|
|
|
|
4. Start kkFileView in another terminal:
|
|
|
|
```bash
|
|
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"
|
|
```
|
|
|
|
5. Run tests:
|
|
|
|
```bash
|
|
cd tests/e2e
|
|
KK_BASE_URL=http://127.0.0.1:8012 FIXTURE_BASE_URL=http://127.0.0.1:18080 npm test
|
|
```
|
|
|
|
Optional:
|
|
|
|
```bash
|
|
# 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
|
|
```
|