#!/usr/bin/env bats setup_file() { PROJECT_ROOT="$(cd "${BATS_TEST_DIRNAME}/.." && pwd)" export PROJECT_ROOT ORIGINAL_HOME="${HOME:-}" export ORIGINAL_HOME HOME="$(mktemp -d "${BATS_TEST_DIRNAME}/tmp-scripts-home.XXXXXX")" export HOME mkdir -p "$HOME" } teardown_file() { rm -rf "$HOME" if [[ -n "${ORIGINAL_HOME:-}" ]]; then export HOME="$ORIGINAL_HOME" fi } setup() { export TERM="dumb" rm -rf "${HOME:?}"/* mkdir -p "$HOME" } @test "check.sh --help shows usage information" { run "$PROJECT_ROOT/scripts/check.sh" --help [ "$status" -eq 0 ] [[ "$output" == *"Usage"* ]] [[ "$output" == *"--format"* ]] [[ "$output" == *"--no-format"* ]] } @test "check.sh script exists and is valid" { [ -f "$PROJECT_ROOT/scripts/check.sh" ] [ -x "$PROJECT_ROOT/scripts/check.sh" ] run bash -c "grep -q 'Mole Check' '$PROJECT_ROOT/scripts/check.sh'" [ "$status" -eq 0 ] } @test "test.sh script exists and is valid" { [ -f "$PROJECT_ROOT/scripts/test.sh" ] [ -x "$PROJECT_ROOT/scripts/test.sh" ] run bash -c "grep -q 'Mole Test Runner' '$PROJECT_ROOT/scripts/test.sh'" [ "$status" -eq 0 ] } @test "test.sh includes test lint step" { run bash -c "grep -q 'Test script lint' '$PROJECT_ROOT/scripts/test.sh'" [ "$status" -eq 0 ] } @test "Makefile has build target for Go binaries" { run bash -c "grep -q 'go build' '$PROJECT_ROOT/Makefile'" [ "$status" -eq 0 ] } @test "setup-quick-launchers.sh has detect_mo function" { run bash -c "grep -q 'detect_mo()' '$PROJECT_ROOT/scripts/setup-quick-launchers.sh'" [ "$status" -eq 0 ] } @test "setup-quick-launchers.sh has Raycast script generation" { run bash -c "grep -q 'create_raycast_commands' '$PROJECT_ROOT/scripts/setup-quick-launchers.sh'" [ "$status" -eq 0 ] run bash -c "grep -q 'write_raycast_script' '$PROJECT_ROOT/scripts/setup-quick-launchers.sh'" [ "$status" -eq 0 ] } @test "install.sh supports dev branch installs" { run bash -c "grep -q 'refs/heads/dev.tar.gz' '$PROJECT_ROOT/install.sh'" [ "$status" -eq 0 ] run bash -c "grep -q 'MOLE_VERSION=\"dev\"' '$PROJECT_ROOT/install.sh'" [ "$status" -eq 0 ] }