Skip to content

feat(awards): reset a test wallet's ballot instead of burning a new address #2562

feat(awards): reset a test wallet's ballot instead of burning a new address

feat(awards): reset a test wallet's ballot instead of burning a new address #2562

Workflow file for this run

# Unit tests in CI — review 2026-07-08 finding 20: the vitest suite (incl. the
# write-shape FORBIDDEN_WRITE_KEYS safety assertions the scanner's zero-demotion
# claim depends on) ran in NO workflow; "CI-asserted" was aspirational. Now it
# gates every PR. The DB-integration file needs a live DB and is excluded here
# (it runs locally via test:int).
name: Unit tests
on:
pull_request:
push:
branches: [main]
permissions: { contents: read }
jobs:
vitest:
runs-on: ubuntu-latest
timeout-minutes: 12
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with: { version: 10 }
- uses: actions/setup-node@v4
with: { node-version: "24", cache: "pnpm" }
- run: pnpm install --frozen-lockfile
# ALL of src/lib (the __tests__ dir AND the *.test.ts files beside their
# module — project-status.test.ts, the Keybase-404 guard, had never run
# here, 2026-09-09) plus component tests that live next to their
# component (src/components/**/*.test.tsx). A path-scoped command
# silently skipped both at different times — a test CI never runs is
# not a test. tests/int/** stays out: it needs PAYLOAD_SECRET + a live DB.
- run: pnpm exec vitest run src/lib/ src/components/