diff --git a/.github/workflows/pr-e2e-mvp.yml b/.github/workflows/pr-e2e-mvp.yml
index e4c08ac8..31f47697 100644
--- a/.github/workflows/pr-e2e-mvp.yml
+++ b/.github/workflows/pr-e2e-mvp.yml
@@ -31,6 +31,11 @@ jobs:
cache: 'npm'
cache-dependency-path: tests/e2e/package-lock.json
+ - name: Setup Python 3.11
+ uses: actions/setup-python@v5
+ with:
+ python-version: '3.11'
+
- name: Install LibreOffice + zip
run: |
sudo apt-get update
@@ -38,8 +43,8 @@ jobs:
- name: Setup Python deps for office fixtures
run: |
- python3 -m pip install --upgrade pip
- pip3 install python-docx openpyxl python-pptx
+ python -m pip install --upgrade pip
+ pip install -r tests/e2e/requirements.txt
- name: Build kkFileView
run: mvn -q -pl server -DskipTests package
diff --git a/tests/e2e/.gitignore b/tests/e2e/.gitignore
index 4a9ea05f..f3b87092 100644
--- a/tests/e2e/.gitignore
+++ b/tests/e2e/.gitignore
@@ -4,3 +4,6 @@ test-results/
__pycache__/
fixtures/zip-tmp/
+fixtures/sample.docx
+fixtures/sample.xlsx
+fixtures/sample.pptx
diff --git a/tests/e2e/README.md b/tests/e2e/README.md
index 3a3d5fc9..35eb6276 100644
--- a/tests/e2e/README.md
+++ b/tests/e2e/README.md
@@ -26,7 +26,7 @@ mvn -q -pl server -DskipTests package
cd tests/e2e
npm install
npx playwright install --with-deps chromium
-pip3 install python-docx openpyxl python-pptx
+pip3 install -r tests/e2e/requirements.txt
```
3. Generate fixtures and start fixture server:
diff --git a/tests/e2e/package.json b/tests/e2e/package.json
index 868716ee..6e08946d 100644
--- a/tests/e2e/package.json
+++ b/tests/e2e/package.json
@@ -4,10 +4,12 @@
"version": "0.1.0",
"type": "module",
"scripts": {
- "test": "playwright test",
- "test:headed": "playwright test --headed",
"gen:fixtures": "node ./scripts/generate-fixtures.mjs",
- "gen:office": "python3 ./scripts/generate-office-fixtures.py"
+ "gen:office": "python3 ./scripts/generate-office-fixtures.py",
+ "gen:all": "npm run gen:fixtures && npm run gen:office",
+ "pretest": "npm run gen:all",
+ "test": "playwright test",
+ "test:headed": "playwright test --headed"
},
"devDependencies": {
"@playwright/test": "^1.55.0"
diff --git a/tests/e2e/requirements.txt b/tests/e2e/requirements.txt
new file mode 100644
index 00000000..663606bb
--- /dev/null
+++ b/tests/e2e/requirements.txt
@@ -0,0 +1,3 @@
+python-docx==1.1.2
+openpyxl==3.1.5
+python-pptx==1.0.2
diff --git a/tests/e2e/scripts/generate-fixtures.mjs b/tests/e2e/scripts/generate-fixtures.mjs
index 6a96daab..c35db03f 100644
--- a/tests/e2e/scripts/generate-fixtures.mjs
+++ b/tests/e2e/scripts/generate-fixtures.mjs
@@ -1,6 +1,6 @@
import fs from 'node:fs';
import path from 'node:path';
-import { execSync } from 'node:child_process';
+import { execFileSync } from 'node:child_process';
const fixturesDir = path.resolve(process.cwd(), 'tests/e2e/fixtures');
fs.mkdirSync(fixturesDir, { recursive: true });
@@ -14,14 +14,17 @@ write('sample.xml', '