Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
14b3612
test: stabilize E2E framework and enhance UI interaction coverage
TheFehr Apr 22, 2026
ec75ee2
test: add E2E test for project lifecycle and improve coverage for con…
TheFehr Apr 23, 2026
8801a03
test(e2e): fix and stabilize end-to-end tests for Foundry V12 and Tid…
TheFehr Apr 27, 2026
7acce87
test(e2e): implement project completion and reward restoration test
TheFehr Apr 28, 2026
dd9bce2
test(e2e): implement instructor and tutelage system tests and fix cur…
TheFehr Apr 28, 2026
8b0b042
refactor(types): enhance ActorProxy type safety and standardize proje…
TheFehr Apr 28, 2026
6ce7ad7
refactor: resolve Foundry v12/v13 deprecations and enforce in E2E tests
TheFehr Apr 28, 2026
5eb5ab8
test(e2e): implement training resolution choice and fix activity sync…
TheFehr Apr 28, 2026
9c2034f
test(e2e): expand console monitoring in Playwright fixtures
TheFehr Apr 28, 2026
dd8996e
fix: resolve TypeScript errors and unit test failures in ActivityManager
TheFehr Apr 28, 2026
6c93df5
test(e2e): implement advanced time bank management tests
TheFehr Apr 29, 2026
d50dce3
test(e2e): add GM controls test for project override and abort actions
TheFehr Apr 30, 2026
1e94063
refactor(core): replace global Logger usage with local import and upd…
TheFehr Apr 30, 2026
ded274e
test(e2e): replace static waitForTimeout calls with dynamic waitForFu…
TheFehr May 1, 2026
4746e00
test(e2e): update completion tests to use "feat" type and improve cre…
TheFehr May 1, 2026
19c4a8b
refactor(e2e): enhance project restoration logic and tests
TheFehr May 1, 2026
4fb700a
test(e2e): add admin password presence logging in global-setup
TheFehr May 1, 2026
de062cb
refactor(e2e): simplify setup page verification and enhance error han…
TheFehr May 1, 2026
042a912
test(e2e): refine dialog selection and message verification logic
TheFehr May 1, 2026
d23e8c0
test(e2e): add multi-user interaction tests for GM and Player workflows
TheFehr May 1, 2026
79e8315
refactor(e2e): remove player setup script and consolidate context/con…
TheFehr May 1, 2026
a0f0b46
ci(e2e): add automated E2E verification workflow
TheFehr May 1, 2026
277cf9d
chore: verify e2e
TheFehr May 1, 2026
3f7cbbc
chore(e2e): use content hash for verification and improve workflow co…
TheFehr May 1, 2026
c8f0bfd
chore(e2e): add compendium existence checks and improve error handlin…
TheFehr May 1, 2026
b3b3cd3
refactor(tests): enhance mergeObject options and add transient field …
TheFehr May 1, 2026
3b94e43
test(e2e): pass baseURL to player context in multi-user interaction test
TheFehr May 1, 2026
6c8d66f
chore: verify e2e [hash: c26aa85d]
TheFehr May 1, 2026
f22049f
chore: update hash calculation and fix stashed system restoration
TheFehr May 1, 2026
a18a745
chore: verify e2e [hash: 3187b675]
TheFehr May 1, 2026
721257e
test(e2e): clean up stale learning projects in multi-user test
TheFehr May 1, 2026
5810280
chore: verify e2e [hash: 0e6ec972]
TheFehr May 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .e2e-verification
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0e6ec972274b1909a8d4303fe3632de6139517993d55fe8edb9dc1be0c814a39
18 changes: 18 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Foundry VTT E2E Configuration
# Copy this file to .env and fill in your local values

# The base URL of your local Foundry instance
FOUNDRY_URL=http://localhost:30000

# Optional: The admin password to log into the /setup screen
# Only required if the server is at the setup screen and locked
FOUNDRY_ADMIN_PASSWORD=

# The name (id) of the world to launch and test in
FOUNDRY_E2E_WORLD=e2e-test-world

# The username (case-sensitive) to log in as in the world
FOUNDRY_E2E_USER=Gamemaster

# The password for the world user
FOUNDRY_E2E_PASSWORD=
44 changes: 44 additions & 0 deletions .github/workflows/e2e-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: E2E Verification Check
on:
pull_request:
branches:
- main

jobs:
check-e2e:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
Comment thread
coderabbitai[bot] marked this conversation as resolved.
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 0

- name: Verify E2E Signature
run: |
if [ ! -f .e2e-verification ]; then
echo "::error::.e2e-verification file is missing. You must run 'npm run test:e2e:verify' locally and push the resulting commit."
exit 1
fi

# Function to calculate hash (MUST match scripts/e2e-verify.sh)
calculate_hash() {
git ls-files -z src/ e2e/ public/ package.json package-lock.json playwright.config.ts vite.config.ts tsconfig*.json .tool-versions | \
sort -z | \
xargs -0 sha256sum | \
sha256sum | \
cut -d ' ' -f 1
}

EXPECTED_HASH=$(cat .e2e-verification | tr -d '[:space:]')
ACTUAL_HASH=$(calculate_hash)

echo "Expected hash: $EXPECTED_HASH"
echo "Actual hash: $ACTUAL_HASH"

if [ "$EXPECTED_HASH" != "$ACTUAL_HASH" ]; then
echo "::error::E2E verification hash mismatch. Source files or configuration have changed since the last E2E verification. Please run 'npm run test:e2e:verify' locally and push the updated .e2e-verification file."
exit 1
fi

echo "✅ E2E verification is valid for the current content."
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,7 @@ dist/

.env.foundryvtt.local
/.junie/
/playwright-report/
/test-results/
/.env
e2e/.auth/
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@ dist/
node_modules/
external-types/
external-dts/
e2e/.auth/
8 changes: 7 additions & 1 deletion DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,4 +74,10 @@ To ensure project stability and type safety, **always** run the following comman

1. **Type Checking**: Run `npx tsc --noEmit` to ensure there are no TypeScript errors.
2. **Tests**: Run `npm run test` to ensure all Vitest tests pass.
3. **Linting**: Run `npm run lint` and `npm run fmt:check` to ensure code style compliance.
3. **Manual E2E Testing**:
- Copy `.env.example` to `.env`.
- Configure `FOUNDRY_URL`, `FOUNDRY_E2E_WORLD`, and `FOUNDRY_E2E_USER`.
- Ensure your local FoundryVTT is running and the test world has the module enabled.
- Run `npm run test:e2e` to execute the Playwright tests.
- Run `npm run test:e2e:ui` to open the Playwright UI for debugging.
4. **Linting**: Run `npm run lint` and `npm run fmt:check` to ensure code style compliance.
Loading
Loading