name: CLI Tests

on:
  push:
    branches: [main]
    paths:
      - 'cli/**'
      - 'tests/cli/**'
  pull_request:
    branches: [main]
    paths:
      - 'cli/**'
      - 'tests/cli/**'

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Set up Python 3.11
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -e .
          pip install -e packages/py/aitbc-crypto
          pip install fastapi uvicorn sqlmodel pydantic-settings aiosqlite slowapi orjson prometheus-client
          pip install pytest pytest-cov pytest-asyncio

      - name: Run CLI tests
        run: |
          python -m pytest tests/cli/ -v --tb=short --disable-warnings

      - name: Run CLI tests with coverage
        run: |
          python -m pytest tests/cli/ --cov=aitbc_cli --cov-report=term-missing --cov-report=xml

      - name: Upload coverage
        uses: actions/upload-artifact@v4
        with:
          name: coverage-report
          path: coverage.xml
