Files
ColaFlow/colaflow-api/test-issue-quick.ps1
Yaojia Wang 1246445a0b fix: Add JSON string enum converter for Issue Management API
- Configure AddControllers() with JsonStringEnumConverter
- Allows API to accept Issue type/priority/status as strings ("Story", "High", "Backlog")
- Frontend can now send readable enum values instead of integers
- All Issue Management CRUD operations tested and working

Test results:
- Create Issue (Story, Bug, Task) ✓
- List all issues ✓
- Filter by status (Backlog, InProgress) ✓
- Change issue status (Kanban workflow) ✓
- Update issue details ✓
- Multi-tenant isolation verified ✓
2025-11-04 12:04:57 +01:00

89 lines
4.2 KiB
PowerShell

# Quick Issue Management Test
$TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2ODM4NTcwOC0yZjJiLTQzMTItYjdiOS1hOGFiMjI3NTliMDkiLCJlbWFpbCI6ImFkbWluQHF1aWNrdGVzdDk5OS5jb20iLCJqdGkiOiJjMmRjNDI2ZS0yODA5LTRiNWMtYTY2YS1kZWI3ZjU2YWNkMmIiLCJ1c2VyX2lkIjoiNjgzODU3MDgtMmYyYi00MzEyLWI3YjktYThhYjIyNzU5YjA5IiwidGVuYW50X2lkIjoiYjM4OGI4N2EtMDQ2YS00MTM0LWEyNmMtNWRjZGY3ZjkyMWRmIiwidGVuYW50X3NsdWciOiJxdWlja3Rlc3Q5OTkiLCJ0ZW5hbnRfcGxhbiI6IlByb2Zlc3Npb25hbCIsImZ1bGxfbmFtZSI6IlRlc3QgQWRtaW4iLCJhdXRoX3Byb3ZpZGVyIjoiTG9jYWwiLCJ0ZW5hbnRfcm9sZSI6IlRlbmFudE93bmVyIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjoiVGVuYW50T3duZXIiLCJleHAiOjE3NjIyNTQ3MzgsImlzcyI6IkNvbGFGbG93LkFQSSIsImF1ZCI6IkNvbGFGbG93LldlYiJ9.RWL-wWNgOleP4eT6uEN-3FXLhS5EijPfjlsu4N82_80"
$PROJECT_ID = "2ffdedc9-7daf-4e11-b9b1-14e9684e91f8"
$ISSUE_ID = "93abd52a-0839-49bf-b58e-985b86c23e33"
$baseUrl = "http://localhost:5167"
$headers = @{
"Authorization" = "Bearer $TOKEN"
"Content-Type" = "application/json"
}
Write-Host "=== Issue Management Quick Test ===" -ForegroundColor Cyan
Write-Host ""
# Test 1: List all issues
Write-Host "[1] List all issues" -ForegroundColor Yellow
$issues = Invoke-RestMethod -Uri "$baseUrl/api/v1/projects/$PROJECT_ID/issues" -Headers $headers
Write-Host "Total issues: $($issues.Count)" -ForegroundColor Green
Write-Host ""
# Test 2: Create Bug
Write-Host "[2] Create Bug (Critical)" -ForegroundColor Yellow
$bugBody = @{
title = "Null reference error in login"
description = "Critical bug causing crashes"
type = "Bug"
priority = "Critical"
} | ConvertTo-Json
$bug = Invoke-RestMethod -Uri "$baseUrl/api/v1/projects/$PROJECT_ID/issues" -Method Post -Headers $headers -Body $bugBody
Write-Host "Created Bug ID: $($bug.id)" -ForegroundColor Green
Write-Host ""
# Test 3: Create Task
Write-Host "[3] Create Task (Medium)" -ForegroundColor Yellow
$taskBody = @{
title = "Update documentation"
description = "Document new features"
type = "Task"
priority = "Medium"
} | ConvertTo-Json
$task = Invoke-RestMethod -Uri "$baseUrl/api/v1/projects/$PROJECT_ID/issues" -Method Post -Headers $headers -Body $taskBody
Write-Host "Created Task ID: $($task.id)" -ForegroundColor Green
Write-Host ""
# Test 4: List by status (Backlog)
Write-Host "[4] List by status (Backlog)" -ForegroundColor Yellow
$backlog = Invoke-RestMethod -Uri "$baseUrl/api/v1/projects/$PROJECT_ID/issues?status=Backlog" -Headers $headers
Write-Host "Backlog count: $($backlog.Count)" -ForegroundColor Green
Write-Host ""
# Test 5: Change status to InProgress
Write-Host "[5] Change status to InProgress" -ForegroundColor Yellow
$statusBody = @{ status = "InProgress" } | ConvertTo-Json
Invoke-RestMethod -Uri "$baseUrl/api/v1/projects/$PROJECT_ID/issues/$ISSUE_ID/status" -Method Put -Headers $headers -Body $statusBody
Write-Host "Status changed" -ForegroundColor Green
Write-Host ""
# Test 6: List by status (InProgress)
Write-Host "[6] List by status (InProgress)" -ForegroundColor Yellow
$inProgress = Invoke-RestMethod -Uri "$baseUrl/api/v1/projects/$PROJECT_ID/issues?status=InProgress" -Headers $headers
Write-Host "InProgress count: $($inProgress.Count)" -ForegroundColor Green
if ($inProgress.Count -gt 0) {
Write-Host "First item: $($inProgress[0].title)" -ForegroundColor Gray
}
Write-Host ""
# Test 7: Update issue
Write-Host "[7] Update issue title" -ForegroundColor Yellow
$updateBody = @{
title = "Implement authentication - Updated"
description = "Add JWT-based auth with refresh tokens"
priority = "Critical"
} | ConvertTo-Json
Invoke-RestMethod -Uri "$baseUrl/api/v1/projects/$PROJECT_ID/issues/$ISSUE_ID" -Method Put -Headers $headers -Body $updateBody
Write-Host "Issue updated" -ForegroundColor Green
Write-Host ""
# Test 8: Get updated issue
Write-Host "[8] Get updated issue" -ForegroundColor Yellow
$updated = Invoke-RestMethod -Uri "$baseUrl/api/v1/projects/$PROJECT_ID/issues/$ISSUE_ID" -Headers $headers
Write-Host "Title: $($updated.title)" -ForegroundColor Gray
Write-Host "Priority: $($updated.priority)" -ForegroundColor Gray
Write-Host "Status: $($updated.status)" -ForegroundColor Gray
Write-Host ""
Write-Host "=== All tests completed successfully! ===" -ForegroundColor Green