name: Tests
on:
    pull_request: {}
    push:
        branches: [develop, master]
    repository_dispatch:
        types: [element-web-notify]
env:
    # These must be set for fetchdep.sh to get the right branch
    REPOSITORY: ${{ github.repository }}
    PR_NUMBER: ${{ github.event.pull_request.number }}
jobs:
    jest:
        name: Jest
        runs-on: ubuntu-latest
        steps:
            - name: Checkout code
              uses: actions/checkout@v4

            - name: Yarn cache
              uses: actions/setup-node@v4
              with:
                  cache: "yarn"

            - name: Install Dependencies
              run: "./scripts/layered.sh"

            - name: Get number of CPU cores
              id: cpu-cores
              uses: SimenB/github-actions-cpu-cores@97ba232459a8e02ff6121db9362b09661c875ab8 # v2

            - name: Run tests with coverage
              run: "yarn coverage --ci --max-workers ${{ steps.cpu-cores.outputs.count }}"

            - name: Upload Artifact
              uses: actions/upload-artifact@v3
              with:
                  name: coverage
                  path: |
                      coverage
                      !coverage/lcov-report
