Commit all scripts
Some checks failed
Code Coverage / Generate Coverage Report (push) Has been cancelled
Tests / Run Tests (9.0.x) (push) Has been cancelled
Tests / Docker Build Test (push) Has been cancelled
Tests / Test Summary (push) Has been cancelled

This commit is contained in:
Yaojia Wang
2025-11-03 17:19:20 +01:00
parent ebdd4ee0d7
commit 4183b10b39
24 changed files with 4917 additions and 11 deletions

View 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