Skip to content

Add E2E test suite, all-in-one Docker image, and build improvements#2

Merged
edimarlnx merged 7 commits into
mainfrom
feat/e2e
Mar 27, 2026
Merged

Add E2E test suite, all-in-one Docker image, and build improvements#2
edimarlnx merged 7 commits into
mainfrom
feat/e2e

Conversation

@edimarlnx

@edimarlnx edimarlnx commented Mar 27, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add comprehensive Playwright E2E test suite (15 suites, 65+ tests) covering all admin areas
  • Refactor all-in-one Docker image: Fedora-based with Supervisor managing Samba + MongoDB + Meteor
  • Conditional service startup via environment variables (ROOT_URL, MONGO_URL, METEOR_SETTINGS)
  • Add babel.config.js with conditional data-e2e attribute removal (REMOVE_E2E_ATTRS=true)
  • Fix ldapjs production build crash by marking it as rspack external
  • Add cron job disable support via Meteor.settings.cron.enabled
  • Add GitHub Actions workflow for automated E2E tests on PRs
  • Update documentation across all CLAUDE.md and E2E-TESTS.md files

Key changes

  • E2E Docker Compose uses all-in-one image (single container) instead of separate samba + meteor containers
  • rspack.config.js — ldapjs added to externals (prevents bundling that broke the LDAP parser)
  • All-in-one image — Supervisor templates in docker/all-in-one/supervisor/, dynamically assembled by entrypoint
  • sambaExec — supports remote samba-tool via -H flag with sambaToolUrl setting

Test plan

  • Run E2E tests via ./run-tests.sh --compose
  • Verify meteor npm start works with new babel.config.js
  • Verify all-in-one Docker image builds and starts correctly
  • Test service scenarios: Samba only, Samba+MongoDB+webapp, Samba+webapp (external MongoDB)
  • Test REMOVE_E2E_ATTRS=true strips data-e2e attributes from production build

…dmin actions

- Introduced E2E test framework using Playwright with Docker integration.
- Added `e2e/tests/helpers.js` with utilities for authentication, navigation, and reporting.
- Created the `e2e/tests/oauth-realms.spec` file to test OAuth realms functionality including creation, deletion, and default existence.
- Updated admin UI components with `data-e2e` attributes for robust element selection.
- Expanded `.dockerignore` files and added E2E results/report directories.
- Included a comprehensive `E2E-TESTS.md` guide for setting up and running tests.
- Updated npm scripts for filtered and full test runs (`test`, `test:auth`, etc.).
…without cache, disable cron jobs via settings

- Updated `sambaLdap.js` to prevent unhandled 'error' events from crashing the process by adding an error event handler to the LDAP client.
- Enhanced `run-tests.sh` to support `--no-cache` option for Docker Compose builds.
- Modified `cron.js` to support disabling of SyncedCron via Meteor settings (`cron.enabled=false`).
…rate supervisor for service orchestration, and enhance Samba configuration with remote host support.
…atibility

- Adjusted user permissions and startup command in `webapp.conf` to ensure Samba operations (e.g., `samba-tool`) have required access to `/var/lib/samba/private`.
- Clarified Dockerfile comment to reflect that only MongoDB runs as non-root.
@edimarlnx edimarlnx changed the title Add E2E test suite and build improvements Add E2E test suite, all-in-one Docker image, and build improvements Mar 27, 2026
@edimarlnx
edimarlnx merged commit e94f2dc into main Mar 27, 2026
1 check passed
@edimarlnx
edimarlnx deleted the feat/e2e branch March 27, 2026 05:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant