fetch_ml/tests/scripts/test_manage.bats
Jeremie Fraeys c980167041 test: implement comprehensive test suite with multiple test types
- Add end-to-end tests for complete workflow validation
- Include integration tests for API and database interactions
- Add unit tests for all major components and utilities
- Include performance tests for payload handling
- Add CLI API integration tests
- Include Podman container integration tests
- Add WebSocket and queue execution tests
- Include shell script tests for setup validation

Provides comprehensive test coverage ensuring platform reliability
and functionality across all components and interactions.
2025-12-04 16:55:13 -05:00

82 lines
2.3 KiB
Bash

#!/usr/bin/env bats
# Tests for manage.sh script functionality
setup() {
# Get the directory of this test file
TEST_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
PROJECT_ROOT="$(cd "$TEST_DIR/../.." && pwd)"
MANAGE_SCRIPT="$PROJECT_ROOT/tools/manage.sh"
# Ensure manage.sh exists and is executable
[ -f "$MANAGE_SCRIPT" ]
chmod +x "$MANAGE_SCRIPT"
}
@test "manage.sh exists and is executable" {
[ -f "$MANAGE_SCRIPT" ]
[ -x "$MANAGE_SCRIPT" ]
}
@test "manage.sh shows help" {
run "$MANAGE_SCRIPT" help
[ "$status" -eq 0 ]
echo "$output" | grep -q "Project Management Script"
echo "$output" | grep -q "health"
echo "$output" | grep -q "Check API health endpoint"
}
@test "manage.sh health command exists" {
run "$MANAGE_SCRIPT" help
[ "$status" -eq 0 ]
echo "$output" | grep -q "health"
}
@test "manage.sh health when API not running" {
# First stop any running services
run "$MANAGE_SCRIPT" stop
# Run health check
run "$MANAGE_SCRIPT" health
[ "$status" -eq 1 ] # Should fail when API is not running
echo "$output" | grep -q "API port 9101 not open"
echo "$output" | grep -q "Start with:"
}
@test "manage.sh status command works" {
run "$MANAGE_SCRIPT" status
# Status should work regardless of running state
[ "$status" -eq 0 ]
echo "$output" | grep -q "ML Experiment Manager Status"
}
@test "manage.sh has all expected commands" {
run "$MANAGE_SCRIPT" help
[ "$status" -eq 0 ]
# Check for all expected commands
echo "$output" | grep -q "status"
echo "$output" | grep -q "build"
echo "$output" | grep -q "test"
echo "$output" | grep -q "start"
echo "$output" | grep -q "stop"
echo "$output" | grep -q "health"
echo "$output" | grep -q "security"
echo "$output" | grep -q "dev"
echo "$output" | grep -q "logs"
echo "$output" | grep -q "cleanup"
echo "$output" | grep -q "help"
}
@test "manage.sh health uses correct curl command" {
# Check that the health function exists in the script
grep -q "check_health()" "$MANAGE_SCRIPT"
# Check that the curl command is present
grep -q "curl.*X-API-Key.*password.*X-Forwarded-For.*127.0.0.1" "$MANAGE_SCRIPT"
}
@test "manage.sh health handles port check" {
# Verify the health check uses nc for port testing
grep -q "nc -z localhost 9101" "$MANAGE_SCRIPT"
}