The Gregorovius Frontend repo contains the main frontend of the Gregorovius Correspondence Edition and the Edition Guidelines.
The edition's main frontend is built as a SPA with Vue.js, Vue CLI and Quasar.
Make sure you have npm installed, cd into the root project directory and run
npm installto install all required dependencies.
Copy the env.dist.js to env.js and change the contents if necessary.
cp env.dist.js env.jsTo compile and hot-reload for development run
npm run serveEnd-to-end tests (Playwright) cover the main user flows in Chromium and WebKit.
They run against a production build and a mocked API that serves recorded fixtures from tests/e2e/fixtures/api,
so no network access is needed. Letter texts are transformed by the mock with xsltproc (libxslt, the same engine
as the API), which therefore has to be installed (preinstalled on macOS, sudo apt-get install xsltproc on Debian/Ubuntu).
npx playwright install chromium webkit # once
npm run test:unit # unit tests (Vitest, tests/unit)
npm run test:e2e # E2E tests (builds the app, Chromium + WebKit)
npm run test:e2e -- --ui # interactive mode
npx playwright show-report # report of the last runEvery page is also scanned with axe. Known violations are listed in
tests/e2e/a11y/allowlist.json; new violations fail the tests. After fixing accessibility issues, rewrite the
baseline with
E2E_A11Y_UPDATE=1 npx playwright test a11y --project=chromium --workers=1Tests marked with test.fail document known bugs; they start failing once the bug is fixed and should then be
turned into regular tests.
Fixtures are a reduced, consistent snapshot of the live API (read-only requests). To re-record them:
npm run e2e:record -- --dry-run # show selection and size only
npm run e2e:recordSmoke tests against a running stack (by default the local Docker setup at http://gregorovius.local), including a
check that the mock's XSLT output equals the API's:
npm run test:e2e:smoke
E2E_SMOKE_URL=https://example.org npm run test:e2e:smokeThe edition guidelines are built with MkDocs and Material for MkDocs. The content is all markdown-based and the structure of the page can be configured with a central configuration file (see the MkDocs documentation).
Make sure you have Python and MkDocs installed, cd into the edition-docs directory and run
mkdocs serve