version: 2.1

orbs:
  node: circleci/node@5.0.2
  browser-tools: circleci/browser-tools@1.2.4

jobs:
  test:
    parameters:
      version: 
        default: "stable"
        description: Node.JS version to install
        type: string
    docker:
      - image: cimg/node:<<parameters.version>>-browsers
    resource_class: large
    steps:
      - checkout
      - browser-tools/install-browser-tools:
          install-geckodriver: false
      - run:
          command: |
            google-chrome --version
            firefox --version
          name: Check install
      - when:
          condition:
            equal: [ "17.9", <<parameters.version>>]
          steps:
            # Prevents build error on stable node version
            - run: echo 'export NODE_OPTIONS=--openssl-legacy-provider' >> $BASH_ENV
      - node/install-packages
      - run: npm run test
  deploy:
    docker:
      - image: cimg/node:17.9
    steps:
      - checkout
      - node/install-packages
      - run: npx semantic-release

workflows:
  test:
    jobs:
      - test:
          matrix:
            parameters:
              version:
                - "17.9"
                - "lts"
      - deploy:
          requires:
            - test
