---
name: WASM Testing

# Trigger the workflow on push or pull request
"on": [push, pull_request]

env:
  SCCACHE_GHA_ENABLED: "true"
  RUSTC_WRAPPER: "sccache"

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true
jobs:
  wasm_test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      # - name: Check arch
      #   run: |
      #     uname -a
      - name: Setup sccache
        uses: mozilla-actions/sccache-action@v0.0.4
        with:
          version: "v0.4.2"
      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
      - name: Install wasm-pack
        run: cargo install wasm-pack
      - name: Install dependencies
        run: |
          scripts/install_ubuntu_dependencies.sh
      # https://github.com/browser-actions/setup-chrome
      - name: Install Chrome Headless
        uses: browser-actions/setup-chrome@latest
        with:
          chrome-version: latest
      # https://github.com/marketplace/actions/setup-chromedriver
      - uses: nanasess/setup-chromedriver@v2
      # with:
      # Optional: do not specify to match Chrome's version
      # chromedriver-version: '88.0.4324.96'

      # - run: make webui
      - name: "Run wasm-pack test"
        # https://rustwasm.github.io/docs/wasm-bindgen/wasm-bindgen-test/browsers.html
        run: |
          rustup target add wasm32-unknown-unknown
          make webui/test

      - name: "Run webdriver tests"
        run: |
          chromedriver &
          cargo test -p kanidmd_testkit --features webdriver test_webdriver
        env:
          DISPLAY: ":99"
