name: Test
on:
  workflow_call:

jobs:
  code-formatting:
    name: Code Formatting
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - run: cargo fmt --check

  code-linter:
    name: Code Linter
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Run cargo clippy
        run: |
          rustup component add clippy
          cargo clippy --all-features --workspace --tests -- --warn clippy::all --warn clippy::nursery

  tests:
    name: Tests
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Install cargo-near CLI
        run: curl --proto '=https' --tlsv1.2 -LsSf https://github.com/near/cargo-near/releases/download/cargo-near-vcargo-near-new-ci-tool-version-self/cargo-near-installer.sh | sh
      - name: Run cargo test
        run: cargo test
