- PGlite (in-memory WASM Postgres) hosted in a child process, exposed via TCP socket; real migrations applied with prisma migrate deploy - Vitest harness (vitest.integration.config.ts, global-setup spawns PGlite + built Nuxt server, per-test TRUNCATE, factories, cookie-jar API client); no mocks, zero production code changes - 50 tests across auth, hunt, team, submit, review, showcase, diashow incl. SuperJSON envelope check; *.itest.ts keeps bun test untouched - CI: parallel unit + integration jobs in .github/workflows/test.yml - tests/ covered by nuxt typecheck via tests/tsconfig.json reference
41 lines
993 B
YAML
41 lines
993 B
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
unit:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install bun
|
|
uses: oven-sh/setup-bun@v2
|
|
- name: Install dependencies
|
|
run: bun install --include=dev
|
|
- name: Check formatting
|
|
run: bun run check
|
|
- name: ESLint
|
|
run: bun run lint
|
|
- name: Typecheck
|
|
run: bun run typecheck
|
|
- name: Run tests
|
|
run: bun run test
|
|
integration:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
- name: Install bun
|
|
uses: oven-sh/setup-bun@v2
|
|
- name: Setup Node
|
|
# The built Nitro server and the WASM Postgres host run under node.
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
- name: Install dependencies
|
|
run: bun install --include=dev
|
|
- name: Run integration tests
|
|
run: bun run test:integration
|