mirror of
https://github.com/btouchard/ackify-ce.git
synced 2026-02-28 10:48:47 -06:00
a7891618c1
Reorganize GitHub Actions workflows into reusable components and implement complete code coverage tracking across backend, frontend, and E2E tests. **CI/CD Improvements:** - Split monolithic ci.yml into 6 specialized reusable workflows - New workflows: test-backend, test-frontend, test-e2e, build-docker, security, coverage-report - Orchestrated execution with proper dependencies and parallel jobs - Codecov integration with multi-flag coverage (backend/frontend/e2e) **Frontend Testing:** - Add Vitest for unit testing with coverage-v8 provider - Create test setup with window mocks for Ackify globals - Add 34 unit tests for titleExtractor, referenceDetector, and http utils - Configure Istanbul instrumentation for E2E coverage collection - Integrate @cypress/code-coverage for E2E test coverage **Test Infrastructure:** - Create run-tests-suite.sh for local comprehensive test execution - Proper Docker Compose orchestration for integration and E2E tests - Automatic cleanup handlers with trap for test environments - Coverage summary aggregation across all test types **Bug Fixes:** - Fix backend config tests after OAuth/MagicLink validation changes - Update tests from panic expectations to error checking - Ensure OAUTH_COOKIE_SECRET is properly configured in tests **Configuration:** - Add .codecov.yml for coverage reporting with flags - Add .nycrc.json for E2E LCOV generation - Update .gitignore for test artifacts and coverage reports - Configure Vite for test environment and code instrumentation
59 lines
1.2 KiB
YAML
59 lines
1.2 KiB
YAML
name: Frontend Tests
|
|
|
|
on:
|
|
workflow_call:
|
|
outputs:
|
|
coverage-artifact:
|
|
description: "Frontend coverage artifact name"
|
|
value: ${{ jobs.test.outputs.coverage-artifact }}
|
|
|
|
jobs:
|
|
test:
|
|
name: Frontend Build + Lint
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
coverage-artifact: frontend-coverage
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '22'
|
|
cache: 'npm'
|
|
cache-dependency-path: webapp/package-lock.json
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
cd webapp
|
|
npm ci --no-audit --no-fund --no-progress
|
|
|
|
- name: Run TypeScript check
|
|
run: |
|
|
cd webapp
|
|
npx vue-tsc -b
|
|
|
|
- name: Run i18n check
|
|
run: |
|
|
cd webapp
|
|
npm run lint:i18n
|
|
|
|
- name: Build frontend
|
|
run: |
|
|
cd webapp
|
|
npm run build
|
|
|
|
- name: Run unit tests with coverage
|
|
run: |
|
|
cd webapp
|
|
npm run test:coverage
|
|
|
|
- name: Upload frontend coverage artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: frontend-coverage
|
|
path: webapp/coverage/lcov.info
|
|
retention-days: 1
|