provisioning-catalog/providers/aws/tests/run_aws_tests.nu

106 lines
4.1 KiB
Text
Raw Permalink Normal View History

#!/usr/bin/env nu
# AWS Provider Test Suite Runner
# Orchestrates unit and integration tests
def main [] {
print "╔════════════════════════════════════════════════════════════════════╗"
print "║ AWS Provider Test Suite (Mock Mode) ║"
print "║ ║"
print "║ Unit Tests (14) + Integration Tests (37) = Total 51 Tests ║"
print "╚════════════════════════════════════════════════════════════════════╝"
print ""
let test_start = (date now | into int)
# Run unit tests
print "▶ Running Unit Tests..."
print ""
let unit_result = (nu ($env.PROVISIONING)/extensions/providers/aws/tests/unit/test_utils.nu)
print ""
# Run integration tests - API Client
print "▶ Running Integration Tests (API Client)..."
print ""
let api_result = (nu ($env.PROVISIONING)/extensions/providers/aws/tests/integration/test_api_client.nu)
print ""
# Run integration tests - Server Lifecycle
print "▶ Running Integration Tests (Server Lifecycle)..."
print ""
let lifecycle_result = (nu ($env.PROVISIONING)/extensions/providers/aws/tests/integration/test_server_lifecycle.nu)
print ""
# Run integration tests - Pricing
print "▶ Running Integration Tests (Pricing)..."
print ""
let pricing_result = (nu ($env.PROVISIONING)/extensions/providers/aws/tests/integration/test_pricing.nu)
print ""
let test_end = (date now | into int)
let elapsed_seconds = ($test_end - $test_start)
# Aggregate results
let unit_passed = ($unit_result | get -o passed)
let unit_failed = ($unit_result | get -o failed)
let api_passed = ($api_result | get -o passed)
let api_failed = ($api_result | get -o failed)
let lifecycle_passed = ($lifecycle_result | get -o passed)
let lifecycle_failed = ($lifecycle_result | get -o failed)
let pricing_passed = ($pricing_result | get -o passed)
let pricing_failed = ($pricing_result | get -o failed)
let total_passed = ($unit_passed + $api_passed + $lifecycle_passed + $pricing_passed)
let total_failed = ($unit_failed + $api_failed + $lifecycle_failed + $pricing_failed)
let total_tests = ($total_passed + $total_failed)
# Print summary
print "═══════════════════════════════════════════════════════════════════"
print ""
print "TEST SUMMARY"
print ""
print $"Unit Tests: ($unit_passed) passed, ($unit_failed) failed"
print $"API Client Tests: ($api_passed) passed, ($api_failed) failed"
print $"Server Lifecycle Tests: ($lifecycle_passed) passed, ($lifecycle_failed) failed"
print $"Pricing Tests: ($pricing_passed) passed, ($pricing_failed) failed"
print ""
print "─────────────────────────────────────────────────────────────────────"
print ""
if ($total_failed == 0) {
print "✅ ALL TESTS PASSED"
} else {
print $"⚠️ SOME TESTS FAILED: ($total_failed) failures"
}
print ""
print $"Total: ($total_passed) passed, ($total_failed) failed (($total_tests) total)"
print $"Execution Time: ($elapsed_seconds)s"
print ""
# Return aggregated results
{
unit: $unit_result,
api_client: $api_result,
server_lifecycle: $lifecycle_result,
pricing: $pricing_result,
total_passed: $total_passed,
total_failed: $total_failed,
total: $total_tests,
elapsed_seconds: $elapsed_seconds,
success: ($total_failed == 0)
}
}
let results = (main)
# Exit with appropriate code
if $results.success {
exit 0
} else {
exit 1
}