name: Code Coverage
on:
  pull_request:
    branches:
      - master
    types: [opened, synchronize]

jobs:
  test-coverage:
    name: Upload Coverage to Sonarqube
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read
    steps:
      - uses: actions/checkout@v4
        with: 
          fetch-depth: 0
      - uses: actions/setup-node@v3
        with:
          node-version: 24

      - name: Set up Artifactory Auth with OIDC
        uses: jfrog/setup-jfrog-cli@v4
        env:
          JF_URL: https://artifactory.coxautoinc.com
        with:
          oidc-provider-name: gh-public

      - name: Configure npm to use Artifactory
        run: |
          jf npm-config --repo-resolve cai-npm --server-id-resolve setup-jfrog-cli-server

      - name: Install node modules
        run: jf npm ci
      - name: Build coverage report
        run: npm run coverage
        env:
          CI: true
      - name: SonarQube Scan
        uses: SonarSource/sonarqube-scan-action@master
        env:
          SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
          SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
        with:
          args: >
            -X
