# App CI — the coworker Python suite, the GUI unit tests, and the hermetic
# Playwright e2e suite (mocked /v1 + WS; no model or network needed).

name: CI

on: [push, pull_request]

jobs:
  pytest:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.12"
      - name: Install
        run: |
          python -m pip install --upgrade pip
          pip install -e ".[messaging,dev,bedrock]"
      - name: Test
        run: pytest tests -q

  gui-unit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
          cache-dependency-path: surfaces/gui/package-lock.json
      - name: npm ci
        working-directory: surfaces/gui
        run: npm ci
      - name: Unit tests
        working-directory: surfaces/gui
        run: npm test

  gui-e2e:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm
          cache-dependency-path: surfaces/gui/package-lock.json
      - name: npm ci
        working-directory: surfaces/gui
        run: npm ci
      - name: Install Playwright browsers
        working-directory: surfaces/gui
        run: npx playwright install --with-deps chromium
      - name: e2e
        working-directory: surfaces/gui
        run: npm run e2e
