106 lines
4.1 KiB
Text
106 lines
4.1 KiB
Text
|
|
#!/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
|
||
|
|
}
|