name: tests

on:
  workflow_call:
    inputs:
      python-version:
        default: "3.10.4"
        type: string
      poetry-version:
        default: "1.7.1"
        type: string
      mint-database:
        default: ""
        type: string
      os:
        default: "ubuntu-latest"
        type: string
      mint-only-deprecated:
        default: "false"
        type: string

jobs:
  poetry:
    name: Run (db ${{ inputs.mint-database }}, deprecated api ${{ inputs.mint-only-deprecated }})
    runs-on: ${{ inputs.os }}
    steps:
      - name: Start PostgreSQL service
        if: contains(inputs.mint-database, 'postgres')
        run: |
          docker run -d --name postgres -e POSTGRES_USER=cashu -e POSTGRES_PASSWORD=cashu -e POSTGRES_DB=cashu -p 5432:5432 postgres:latest
          until docker exec postgres pg_isready; do sleep 1; done
      - name: Checkout repository and submodules
        uses: actions/checkout@v2
      - uses: ./.github/actions/prepare
        with:
          python-version: ${{ inputs.python-version }}
          poetry-version: ${{ inputs.poetry-version }}
      - name: Run tests
        env:
          MINT_BACKEND_BOLT11_SAT: FakeWallet
          WALLET_NAME: test_wallet
          MINT_HOST: localhost
          MINT_PORT: 3337
          MINT_TEST_DATABASE: ${{ inputs.mint-database }}
          DEBUG_MINT_ONLY_DEPRECATED: ${{ inputs.mint-only-deprecated }}
          TOR: false
        run: |
          make test
      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v3
