# Workflow for running the keyboard navigation plugin's automated tests.

name: Keyboard Navigation Automated Tests

on:
  workflow_dispatch:
  pull_request:
  push:
    branches:
      - develop

permissions:
  contents: read

jobs:
  webdriverio_tests:
    name: WebdriverIO tests
    timeout-minutes: 10
    runs-on: ${{ matrix.os }}

    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest]

    steps:
      - name: Checkout core Blockly
        uses: actions/checkout@v4
        with:
          path: core-blockly

      - name: Checkout keyboard navigation plugin
        uses: actions/checkout@v4
        with:
          repository: 'google/blockly-keyboard-experimentation'
          ref: 'main'
          path: blockly-keyboard-experimentation

      - name: Use Node.js 20.x
        uses: actions/setup-node@v4
        with:
          node-version: 20.x

      - name: NPM install
        run: |
          cd core-blockly
          npm install
          cd ..
          cd blockly-keyboard-experimentation
          npm install
          cd ..

      - name: Link latest core develop with plugin
        run: |
          cd core-blockly
          npm run package
          cd dist
          npm link
          cd ../../blockly-keyboard-experimentation
          npm link blockly
          cd ..

      - name: Run keyboard navigation plugin tests
        run: |
          cd blockly-keyboard-experimentation
          npm run test
