feat: Integrate Playwright into docker-compose
Some checks failed
Magnitude Tests / test (push) Failing after 2m2s

Adds Playwright service to docker-compose.yml for easier test execution
and better integration with existing database services.

## Changes

- Add `playwright` service to docker-compose.yml:
  - Uses official Playwright image (mcr.microsoft.com/playwright:v1.49.1-noble)
  - Runs as non-root user (pwuser) for security
  - Uses host networking to access dev server on localhost:3000
  - Loads environment variables from .env
  - Uses `profiles: [test]` to keep it optional
  - Mounts node_modules volume to prevent permission issues

- Update documentation in AGENTS.md:
  - Replace standalone Docker commands with docker-compose usage
  - Document two usage patterns: `docker compose run` and `--profile test`
  - Explain benefits of integrated setup

## Usage

```bash
# Start database services
docker compose up -d

# Start dev server
pnpm dev

# Run Playwright tests in Docker
docker compose run --rm playwright
```

Or with profiles:

```bash
# Run tests one-off
docker compose --profile test run --rm playwright
```

## Benefits

- Unified infrastructure setup (database + tests)
- No need for separate Dockerfile build step
- Easier for new developers to run tests
- Consistent with existing docker-compose workflow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-10 13:52:05 +00:00
parent 1ff9a2cf4b
commit 39aea34026
2 changed files with 47 additions and 12 deletions

View File

@@ -32,3 +32,26 @@ services:
- "8080:8080"
depends_on:
- surrealdb
playwright:
image: mcr.microsoft.com/playwright:v1.49.1-noble
working_dir: /home/pwuser/app
user: pwuser
network_mode: host
volumes:
- .:/home/pwuser/app
- /home/pwuser/app/node_modules
environment:
- TEST_BLUESKY_HANDLE=${TEST_BLUESKY_HANDLE}
- TEST_BLUESKY_PASSWORD=${TEST_BLUESKY_PASSWORD}
- PLAYWRIGHT_BASE_URL=${PLAYWRIGHT_BASE_URL:-http://localhost:3000}
command: >
sh -c "
npm install -g pnpm &&
pnpm install --frozen-lockfile &&
npx playwright test
"
depends_on:
- surrealdb
profiles:
- test