Commit all scripts
This commit is contained in:
141
colaflow-api/run-integration-tests-category.ps1
Normal file
141
colaflow-api/run-integration-tests-category.ps1
Normal file
@@ -0,0 +1,141 @@
|
||||
# ColaFlow Integration Tests - Run Specific Category
|
||||
# Usage: .\run-integration-tests-category.ps1 [category]
|
||||
# Categories: RefreshToken, RBAC, Authentication, All
|
||||
|
||||
param(
|
||||
[Parameter(Position=0)]
|
||||
[ValidateSet("RefreshToken", "RBAC", "Authentication", "All")]
|
||||
[string]$Category = "All"
|
||||
)
|
||||
|
||||
Write-Host "================================================" -ForegroundColor Cyan
|
||||
Write-Host " ColaFlow Integration Tests - Category: $Category" -ForegroundColor Cyan
|
||||
Write-Host "================================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
# Step 1: Stop any running API processes
|
||||
Write-Host "[1/3] Stopping any running ColaFlow API processes..." -ForegroundColor Yellow
|
||||
$processes = Get-Process | Where-Object { $_.ProcessName -like "*ColaFlow*" }
|
||||
if ($processes) {
|
||||
$processes | ForEach-Object {
|
||||
Write-Host " Killing process: $($_.ProcessName) (PID: $($_.Id))" -ForegroundColor Gray
|
||||
Stop-Process -Id $_.Id -Force -ErrorAction SilentlyContinue
|
||||
}
|
||||
Start-Sleep -Seconds 2
|
||||
}
|
||||
Write-Host " Done." -ForegroundColor Green
|
||||
Write-Host ""
|
||||
|
||||
# Step 2: Build if needed
|
||||
Write-Host "[2/3] Building solution (if needed)..." -ForegroundColor Yellow
|
||||
dotnet build tests/Modules/Identity/ColaFlow.Modules.Identity.IntegrationTests --verbosity quiet --nologo
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host ""
|
||||
Write-Host "Build failed! Running full rebuild..." -ForegroundColor Yellow
|
||||
dotnet clean --verbosity quiet
|
||||
dotnet build --verbosity minimal --nologo
|
||||
if ($LASTEXITCODE -ne 0) {
|
||||
Write-Host "Build failed! Please check the errors above." -ForegroundColor Red
|
||||
exit 1
|
||||
}
|
||||
}
|
||||
Write-Host " Done." -ForegroundColor Green
|
||||
Write-Host ""
|
||||
|
||||
# Step 3: Run tests based on category
|
||||
Write-Host "[3/3] Running $Category tests..." -ForegroundColor Yellow
|
||||
Write-Host ""
|
||||
Write-Host "================================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
$filter = switch ($Category) {
|
||||
"RefreshToken" { "FullyQualifiedName~RefreshTokenTests" }
|
||||
"RBAC" { "FullyQualifiedName~RbacTests" }
|
||||
"Authentication" { "FullyQualifiedName~AuthenticationTests" }
|
||||
"All" { $null }
|
||||
}
|
||||
|
||||
if ($filter) {
|
||||
Write-Host "Running tests with filter: $filter" -ForegroundColor Gray
|
||||
Write-Host ""
|
||||
dotnet test tests/Modules/Identity/ColaFlow.Modules.Identity.IntegrationTests `
|
||||
--no-build `
|
||||
--filter "$filter" `
|
||||
--verbosity normal `
|
||||
--logger "console;verbosity=detailed"
|
||||
} else {
|
||||
dotnet test tests/Modules/Identity/ColaFlow.Modules.Identity.IntegrationTests `
|
||||
--no-build `
|
||||
--verbosity normal `
|
||||
--logger "console;verbosity=detailed"
|
||||
}
|
||||
|
||||
$testExitCode = $LASTEXITCODE
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "================================================" -ForegroundColor Cyan
|
||||
Write-Host ""
|
||||
|
||||
if ($testExitCode -eq 0) {
|
||||
Write-Host "SUCCESS! All $Category tests passed." -ForegroundColor Green
|
||||
|
||||
switch ($Category) {
|
||||
"RefreshToken" {
|
||||
Write-Host ""
|
||||
Write-Host "Refresh Token Tests Passed (9 tests):" -ForegroundColor Cyan
|
||||
Write-Host " - Token generation on registration/login" -ForegroundColor White
|
||||
Write-Host " - Token refresh with new pair generation" -ForegroundColor White
|
||||
Write-Host " - Token rotation (old token invalidated)" -ForegroundColor White
|
||||
Write-Host " - Invalid token rejection" -ForegroundColor White
|
||||
Write-Host " - Logout token revocation" -ForegroundColor White
|
||||
Write-Host " - User identity preservation" -ForegroundColor White
|
||||
Write-Host " - Multiple refresh operations" -ForegroundColor White
|
||||
}
|
||||
"RBAC" {
|
||||
Write-Host ""
|
||||
Write-Host "RBAC Tests Passed (11 tests):" -ForegroundColor Cyan
|
||||
Write-Host " - TenantOwner role assignment" -ForegroundColor White
|
||||
Write-Host " - JWT role claims (role, tenant_role)" -ForegroundColor White
|
||||
Write-Host " - Role persistence across login/refresh" -ForegroundColor White
|
||||
Write-Host " - /api/auth/me returns role information" -ForegroundColor White
|
||||
Write-Host " - Protected endpoint authorization" -ForegroundColor White
|
||||
Write-Host " - Role consistency across all flows" -ForegroundColor White
|
||||
}
|
||||
"Authentication" {
|
||||
Write-Host ""
|
||||
Write-Host "Authentication Tests Passed (10 tests):" -ForegroundColor Cyan
|
||||
Write-Host " - Tenant registration" -ForegroundColor White
|
||||
Write-Host " - Login with correct/incorrect credentials" -ForegroundColor White
|
||||
Write-Host " - Protected endpoint access control" -ForegroundColor White
|
||||
Write-Host " - JWT token generation" -ForegroundColor White
|
||||
Write-Host " - Password hashing (BCrypt)" -ForegroundColor White
|
||||
Write-Host " - Complete auth flow" -ForegroundColor White
|
||||
}
|
||||
"All" {
|
||||
Write-Host ""
|
||||
Write-Host "All Tests Passed (30 tests):" -ForegroundColor Cyan
|
||||
Write-Host " - Authentication Tests: 10 tests" -ForegroundColor White
|
||||
Write-Host " - Refresh Token Tests: 9 tests" -ForegroundColor White
|
||||
Write-Host " - RBAC Tests: 11 tests" -ForegroundColor White
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Write-Host "FAILED! Some $Category tests did not pass." -ForegroundColor Red
|
||||
Write-Host ""
|
||||
Write-Host "Check test output above for specific failures." -ForegroundColor Yellow
|
||||
}
|
||||
|
||||
Write-Host ""
|
||||
Write-Host "================================================" -ForegroundColor Cyan
|
||||
|
||||
# Show usage hint
|
||||
if ($testExitCode -eq 0) {
|
||||
Write-Host ""
|
||||
Write-Host "Tip: Run other test categories:" -ForegroundColor Cyan
|
||||
Write-Host " .\run-integration-tests-category.ps1 RefreshToken" -ForegroundColor Gray
|
||||
Write-Host " .\run-integration-tests-category.ps1 RBAC" -ForegroundColor Gray
|
||||
Write-Host " .\run-integration-tests-category.ps1 Authentication" -ForegroundColor Gray
|
||||
Write-Host " .\run-integration-tests-category.ps1 All" -ForegroundColor Gray
|
||||
}
|
||||
|
||||
exit $testExitCode
|
||||
Reference in New Issue
Block a user