version: 2.1

aliases:
  - &restore_cache
    restore_cache:
      name: Restore pnpm package cache
      keys:
        - pnpm-packages-{{ checksum "pnpm-lock.yaml" }}

jobs:
  run_tests:
    docker:
      - image: node:20
    steps:
      - checkout
      - *restore_cache
      - run:
          name: Install pnpm
          command: |
            corepack enable
            corepack prepare pnpm@latest-9 --activate
      - run:
          name: Install Dependencies
          command: pnpm install
      - run:
          name: Download test videos
          command: pnpm run assets
      - run:
          name: Install FFmpeg
          command: |
            apt-get -y update
            apt-get -y install ffmpeg
      - save_cache:
          name: Save pnpm package cache
          key: pnpm-packages-{{ checksum "pnpm-lock.yaml" }}
          paths:
            - node_modules
      - run:
          name: Unit tests
          command: pnpm run test
      - run: node --version

workflows:
  node-tests:
    jobs:
      - run_tests
