name: Run tests
on:
  workflow_dispatch:
  push:
    branches:
      - 'master'
  pull_request:
    branches:
      - 'master'

jobs:
  test:
    name: Run tests
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v2
      - name: Use Node.js
        uses: actions/setup-node@v1
        with:
          node-version: 18.x
      - name: Install browsers
        run: |
          export DEBIAN_FRONTEND=noninteractive
          sudo add-apt-repository -y ppa:mozillateam/ppa
          sudo apt-get update
          sudo apt-get install -y \
            chromium-browser \
            firefox-esr \
            xvfb

      - name: Update npm
        run: npm install -g npm@10

      - name: Install the project
        run: npm install

      - name: Run lint
        run: npm run lint -- --no-fix

      - name: Run karma tests
        run: xvfb-run -a npm test
