documentation cleanse, sprints work and planning. remaining non EF DAL migration to EF
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
capturedAtUtc=2026-02-10T23:12:21Z
|
||||
request=POST /api/v1/timeline/qa-correlation-013/replay
|
||||
headers=Content-Type: application/json
|
||||
---
|
||||
HTTP/1.1 202 Accepted Content-Type: application/json; charset=utf-8 Date: Tue, 10 Feb 2026 23:12:21 GMT Server: Kestrel Location: /api/v1/timeline/replay/5b05a21210ba4e7c Transfer-Encoding: chunked {"replayId":"5b05a21210ba4e7c","correlationId":"qa-correlation-013","mode":"dry-run","status":"INITIATED","estimatedDurationMs":500}
|
||||
@@ -0,0 +1,4 @@
|
||||
capturedAtUtc=2026-02-10T23:12:37Z
|
||||
request=GET /api/v1/timeline/replay/5b05a21210ba4e7c
|
||||
---
|
||||
HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 Date: Tue, 10 Feb 2026 23:12:36 GMT Server: Kestrel Transfer-Encoding: chunked {"replayId":"5b05a21210ba4e7c","correlationId":"qa-correlation-013","mode":"dry-run","status":"COMPLETED","progress":1,"eventsProcessed":0,"totalEvents":0,"startedAt":"2026-02-10T23:12:21.8140622+00:00","completedAt":"2026-02-10T23:12:21.8142249+00:00","originalDigest":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","replayDigest":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","deterministicMatch":true,"error":null}
|
||||
@@ -0,0 +1,5 @@
|
||||
capturedAtUtc=2026-02-10T23:11:57Z
|
||||
request=POST /api/v1/timeline/qa-correlation-013/replay
|
||||
headers=Content-Type: application/json
|
||||
---
|
||||
HTTP/1.1 400 Bad Request Content-Type: application/json; charset=utf-8 Date: Tue, 10 Feb 2026 23:11:56 GMT Server: Kestrel Transfer-Encoding: chunked "Mode must be either 'dry-run' or 'verify'."
|
||||
@@ -0,0 +1,4 @@
|
||||
capturedAtUtc=2026-02-10T23:11:57Z
|
||||
request=GET /api/v1/timeline/replay/does-not-exist-013
|
||||
---
|
||||
HTTP/1.1 404 Not Found Content-Length: 0 Date: Tue, 10 Feb 2026 23:11:56 GMT Server: Kestrel
|
||||
@@ -0,0 +1,4 @@
|
||||
capturedAtUtc=2026-02-10T23:12:37Z
|
||||
request=POST /api/v1/timeline/replay/does-not-exist-013/cancel
|
||||
---
|
||||
HTTP/1.1 404 Not Found Content-Length: 0 Date: Tue, 10 Feb 2026 23:12:37 GMT Server: Kestrel
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"filesChecked": [
|
||||
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ReplayEndpoints.cs",
|
||||
"src/Timeline/__Libraries/StellaOps.Timeline.Core/Replay/TimelineReplayOrchestrator.cs",
|
||||
"src/Timeline/__Libraries/StellaOps.Timeline.Core/ServiceCollectionExtensions.cs",
|
||||
"src/Timeline/__Tests/StellaOps.Timeline.WebService.Tests/TimelineApiIntegrationTests.cs"
|
||||
],
|
||||
"found": [
|
||||
"src/Timeline/StellaOps.Timeline.WebService/Endpoints/ReplayEndpoints.cs",
|
||||
"src/Timeline/__Libraries/StellaOps.Timeline.Core/Replay/TimelineReplayOrchestrator.cs",
|
||||
"src/Timeline/__Libraries/StellaOps.Timeline.Core/ServiceCollectionExtensions.cs",
|
||||
"src/Timeline/__Tests/StellaOps.Timeline.WebService.Tests/TimelineApiIntegrationTests.cs"
|
||||
],
|
||||
"missing": [],
|
||||
"verdict": "pass"
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"project": "src/Timeline (__Tests matrix)",
|
||||
"buildResult": "pass",
|
||||
"testResult": "pass",
|
||||
"command": "dotnet test src/Timeline/__Tests/StellaOps.Timeline.Core.Tests/StellaOps.Timeline.Core.Tests.csproj -c Release --nologo; dotnet test src/Timeline/__Tests/StellaOps.Timeline.WebService.Tests/StellaOps.Timeline.WebService.Tests.csproj -c Release --nologo",
|
||||
"testProjects": [
|
||||
"src/Timeline/__Tests/StellaOps.Timeline.Core.Tests/StellaOps.Timeline.Core.Tests.csproj",
|
||||
"src/Timeline/__Tests/StellaOps.Timeline.WebService.Tests/StellaOps.Timeline.WebService.Tests.csproj"
|
||||
],
|
||||
"testsRun": 26,
|
||||
"testsPassed": 26,
|
||||
"testsFailed": 0,
|
||||
"errors": [],
|
||||
"warnings": [],
|
||||
"runAtUtc": "2026-02-10T23:13:14Z"
|
||||
}
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
"type": "api",
|
||||
"module": "timeline",
|
||||
"feature": "timeline-replay-api",
|
||||
"runId": "run-013",
|
||||
"dateUtc": "2026-02-10T23:13:14Z",
|
||||
"baseUrl": "https://127.1.0.24",
|
||||
"transport": "curl -k (dev TLS, Eventing__UseInMemoryStore=true)",
|
||||
"capturedAtUtc": "2026-02-10T23:12:37Z",
|
||||
"requests": [
|
||||
{
|
||||
"description": "Replay initiation returns accepted operation",
|
||||
"method": "POST",
|
||||
"path": "/api/v1/timeline/qa-correlation-013/replay",
|
||||
"expectedStatus": 202,
|
||||
"actualStatus": 202,
|
||||
"assertion": "response contains replayId and accepted location header",
|
||||
"requestCapturedAtUtc": "2026-02-10T23:12:21Z",
|
||||
"evidenceFile": "evidence/01-initiate-replay.txt",
|
||||
"responseSnippet": "\"replayId\":\"5b05a21210ba4e7c\"",
|
||||
"result": "pass"
|
||||
},
|
||||
{
|
||||
"description": "Replay status endpoint remains reachable across requests",
|
||||
"method": "GET",
|
||||
"path": "/api/v1/timeline/replay/5b05a21210ba4e7c",
|
||||
"expectedStatus": 200,
|
||||
"actualStatus": 200,
|
||||
"assertion": "status payload resolves initiated replay id and reports deterministic match for processed events",
|
||||
"requestCapturedAtUtc": "2026-02-10T23:12:37Z",
|
||||
"evidenceFile": "evidence/02-replay-status.txt",
|
||||
"responseSnippet": "\"status\":\"COMPLETED\",\"deterministicMatch\":true",
|
||||
"result": "pass"
|
||||
},
|
||||
{
|
||||
"description": "Invalid replay mode is client-error validated",
|
||||
"method": "POST",
|
||||
"path": "/api/v1/timeline/qa-correlation-013/replay",
|
||||
"expectedStatus": 400,
|
||||
"actualStatus": 400,
|
||||
"assertion": "invalid mode returns explicit validation message",
|
||||
"requestCapturedAtUtc": "2026-02-10T23:11:57Z",
|
||||
"evidenceFile": "evidence/03-invalid-mode.txt",
|
||||
"responseSnippet": "\"Mode must be either 'dry-run' or 'verify'.\"",
|
||||
"result": "pass"
|
||||
},
|
||||
{
|
||||
"description": "Unknown replay status returns not found",
|
||||
"method": "GET",
|
||||
"path": "/api/v1/timeline/replay/does-not-exist-013",
|
||||
"expectedStatus": 404,
|
||||
"actualStatus": 404,
|
||||
"assertion": "missing replay id does not return synthetic success",
|
||||
"requestCapturedAtUtc": "2026-02-10T23:11:57Z",
|
||||
"evidenceFile": "evidence/04-unknown-replay-status.txt",
|
||||
"responseSnippet": "HTTP/1.1 404 Not Found",
|
||||
"result": "pass"
|
||||
},
|
||||
{
|
||||
"description": "Cancel endpoint rejects unknown replay id",
|
||||
"method": "POST",
|
||||
"path": "/api/v1/timeline/replay/does-not-exist-013/cancel",
|
||||
"expectedStatus": 404,
|
||||
"actualStatus": 404,
|
||||
"assertion": "unknown replay cancel is rejected with 404",
|
||||
"requestCapturedAtUtc": "2026-02-10T23:12:37Z",
|
||||
"evidenceFile": "evidence/05-cancel-unknown.txt",
|
||||
"responseSnippet": "HTTP/1.1 404 Not Found",
|
||||
"result": "pass"
|
||||
}
|
||||
],
|
||||
"verdict": "pass"
|
||||
}
|
||||
Reference in New Issue
Block a user