fix: run E2E tests properly with mounted browsers and real postgres
- Mount /opt/playwright-tools/browsers into web container (docker-compose.yml and CI docker run) — never download browsers, use the ones on this host - Set PLAYWRIGHT_BROWSERS_PATH in all container envs (compose + CI) - Drop 'playwright install chromium' steps from pr-e2e and nightly-e2e jobs - Bump playwright requirement to ~1.57.0 to match the installed browser builds - Fix seed_e2e_content: de-duplicate default Site entries left by unit test fixtures so Wagtail always routes to the seeded home page - Fix test_comments_section_absent_when_disabled: use exact=True on heading locator to avoid matching 'No Comments Article' h1 as 'Comments' heading - Fix test_copy_link_button_updates_text: use [data-copy-link] data-attr locator (stable across text change) and force-override clipboard.writeText via page.evaluate() rather than relying on init_script polyfill E2E suite verified locally: 34 passed via docker compose exec Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -97,12 +97,14 @@ jobs:
|
||||
- name: Start app with seeded content
|
||||
run: |
|
||||
docker run -d --name pr-e2e-app --network container:pr-e2e-postgres \
|
||||
-v /opt/playwright-tools/browsers:/opt/playwright-tools/browsers:ro \
|
||||
-e SECRET_KEY=ci-secret-key \
|
||||
-e DATABASE_URL=postgres://nohype:nohype@127.0.0.1:5432/nohype \
|
||||
-e CONSENT_POLICY_VERSION=1 \
|
||||
-e EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend \
|
||||
-e DEFAULT_FROM_EMAIL=hello@nohypeai.com \
|
||||
-e NEWSLETTER_PROVIDER=buttondown \
|
||||
-e PLAYWRIGHT_BROWSERS_PATH=/opt/playwright-tools/browsers \
|
||||
"$CI_IMAGE" \
|
||||
sh -lc "python manage.py migrate --noinput && python manage.py seed_e2e_content && python manage.py runserver 0.0.0.0:8000"
|
||||
for i in $(seq 1 40); do
|
||||
@@ -114,9 +116,6 @@ jobs:
|
||||
docker logs pr-e2e-app || true
|
||||
exit 1
|
||||
|
||||
- name: Install Playwright browsers
|
||||
run: docker exec pr-e2e-app python -m playwright install chromium
|
||||
|
||||
- name: Run E2E tests
|
||||
run: |
|
||||
docker exec -e E2E_BASE_URL=http://127.0.0.1:8000 pr-e2e-app \
|
||||
@@ -159,12 +158,14 @@ jobs:
|
||||
- name: Start dev server with seeded content
|
||||
run: |
|
||||
docker run -d --name nightly-e2e --network container:nightly-postgres \
|
||||
-v /opt/playwright-tools/browsers:/opt/playwright-tools/browsers:ro \
|
||||
-e SECRET_KEY=ci-secret-key \
|
||||
-e DATABASE_URL=postgres://nohype:nohype@127.0.0.1:5432/nohype \
|
||||
-e CONSENT_POLICY_VERSION=1 \
|
||||
-e EMAIL_BACKEND=django.core.mail.backends.console.EmailBackend \
|
||||
-e DEFAULT_FROM_EMAIL=hello@nohypeai.com \
|
||||
-e NEWSLETTER_PROVIDER=buttondown \
|
||||
-e PLAYWRIGHT_BROWSERS_PATH=/opt/playwright-tools/browsers \
|
||||
"$CI_IMAGE" \
|
||||
sh -lc "python manage.py migrate --noinput && python manage.py seed_e2e_content && python manage.py runserver 0.0.0.0:8000"
|
||||
for i in $(seq 1 40); do
|
||||
@@ -177,7 +178,6 @@ jobs:
|
||||
exit 1
|
||||
- name: Run Playwright E2E tests
|
||||
run: |
|
||||
docker exec nightly-e2e python -m playwright install chromium
|
||||
docker exec -e E2E_BASE_URL=http://127.0.0.1:8000 nightly-e2e \
|
||||
pytest e2e/ apps/core/tests/test_nightly_e2e_playwright.py -o addopts='' -q --tb=short
|
||||
- name: Remove nightly container
|
||||
|
||||
Reference in New Issue
Block a user