name: 单测

# PR 和 master 推送都跑 npm test。门店上最老的 node 是 10（Ubuntu 20.04 自带 10.19），所以 10 和发布用的 24 都跑。
on:
  pull_request:
  push:
    branches: [master]

permissions:
  contents: read

jobs:
  test:
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        node: ['10', '24']
    steps:
      - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6
      - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6
        with:
          node-version: ${{ matrix.node }}
          package-manager-cache: false
      # node 10 带的 npm 6 认不了 lockfileVersion 3，只装依赖不跑脚本；单测本身不依赖 npm 版本
      - run: npm ci --ignore-scripts || npm install --ignore-scripts --no-audit --no-fund
      - run: npm test
