on:
  pull_request:
  workflow_dispatch:

name: Tests

permissions: write-all

jobs:
  tests:
    name: Tests
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          profile: minimal
          override: true
          components: rustfmt, clippy, rust-src
      - name: Cache
        uses: Swatinem/rust-cache@v2
      - name: Check formatting
        run: cargo fmt --check
      - name: Clippy
        run: cargo clippy --features prost,serde,docs,math --tests -- -D warnings
      - name: Run tests (general)
        run: cargo test --features math,docs,ssr,prost,serde
      - name: Run tests (axum)
        run: cargo test --features math,docs,ssr,prost,serde,axum --doc use_cookie::use_cookie
      - name: Run tests (actix)
        run: cargo test --features math,docs,ssr,prost,serde,actix --doc use_cookie::use_cookie