name: functional test

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]
  workflow_call:
  merge_group:

permissions:
  contents: read

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - name: set up go
        uses: actions/setup-go@v7
        with:
          go-version: "1.25"
      - name: build sif
        run: make
      - name: run sif with features
        run: |
          ./sif -u https://example.com -dnslist small -dirlist small -dork -git -whois -cms -framework
          if [ $? -eq 0 ]; then
            echo "Sif ran successfully"
          else
            echo "Sif exited with an error"
            exit 1
          fi

      - name: test module system
        run: |
          echo "Listing modules..."
          ./sif -lm
          echo "Running all modules..."
          ./sif -u https://example.com -am
          if [ $? -eq 0 ]; then
            echo "Module system working"
          else
            echo "Module system failed"
            exit 1
          fi
