name: Package Test
permissions:
  contents: read
on:
  workflow_call:
    inputs:
      package:
        required: true
        type: string

jobs:
  integration-test:
    name: Integration Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: actions/setup-node@v6
        with:
          node-version: 20
          cache: yarn
      - run: yarn install --immutable
      - name: Cache for Turbo
        uses: rharkor/caching-for-turbo@v2.3.11
        with:
          cache-prefix: turbo-cache-
      - name: Integration Test
        run: yarn test:integration --filter=./packages/${{ inputs.package }}
        timeout-minutes: 3
      - name: Collect and upload the coverage report
        uses: codecov/codecov-action@v5
        with:
          files: ./packages/${{ inputs.package }}/coverage/lcov.info
          flags: ${{ inputs.package }}-integration,${{ inputs.package }}
          token: ${{ secrets.CODECOV_TOKEN }}
