QA Review — MC #8822 / MC #8005 NBS IPS WireMock
QA Review — MC #8822 (review of MC #8005)
Reviewer: John / Proveo QA posture (tool-verified in Pi session 019fa908-a2c1-7588-96c0-0206eb26960c)
Date: 2026-07-28
Subject task: MC #8005 — [DropSrbija T22] NBS IPS WireMock tests (9 cases)
Subject status at review: done
Subject DoD evidence: T22 WireMock IPS: 9 tests, commit 0c92e6aaf, branch feat/drop-srbija-tests-ips-aml, ./gradlew test BUILD SUCCESSFUL 135 total 0 failures
Review scope: Verify that NbsIpsWireMockTest.kt exists, defines the required nine NBS IPS WireMock scenarios, and passes when tested against the referenced commit.
Verdict
APPROVED_WITH_COMMENTS / CORE PASS. The core MC #8005 acceptance is reproducible against commit 0c92e6aaf: NbsIpsWireMockTest.kt contains 9 test functions covering ACCP/ACSC/RJCT/PDNG, HTTP 500, timeout, HTTP 429, malformed XML, and partner-bank naming; the target class passes 9/9; the archived commit full backend test task passes.
Comment: I could not reproduce the exact historical 135 total count from the MC #8005 DoD. The archived 0c92e6aaf rerun produced 131 tests, 0 failures, 0 errors, 0 skipped across 18 XML suites. This does not block the T22 WireMock acceptance, but the DoD total should be treated as historical agent output rather than a current reproducible count.
Files reviewed
backend/src/test/kotlin/no/alai/dropsrbija/modules/ips/NbsIpsWireMockTest.ktbackend/build.gradle.ktsBUILD-BLUEPRINT.md
Scenario evidence from source
NbsIpsWireMockTest.kt defines these 9 test cases:
111: T22-01 ACCP — initiate returns AcceptedCustomerProfile status
131: T22-02 ACSC — checkStatus after settlement returns AcceptedSettlementCompleted
149: T22-03 RJCT — bank returns Rejected status
168: T22-04 PDNG — initiate returns Pending, retry should be honoured
188: T22-05 HTTP 500 — bank server error causes BankApiException with 500 code
208: T22-06 Bank timeout — simulated 2s delay with 1s timeout causes BankTimeoutException
234: T22-07 HTTP 429 — rate limit response causes RateLimitException, not retriable immediately
255: T22-08 Malformed XML response — throws BankResponseParseException
276: T22-09 partner_bank — adapter returns correct partner name per implementation
Machine evidence
Commands executed from archived commit tree:
/tmp/dropsrbija-mc8822-0c92e6aaf-jZwELn/products/DropSrbija/backend
Target class command:
JAVA_HOME=$(/usr/libexec/java_home -v 21) ./gradlew --no-daemon \
-Dorg.gradle.java.home=$(/usr/libexec/java_home -v 21) \
-Dkotlin.compiler.execution.strategy=in-process \
-Dkotlin.daemon.enabled=false \
test --tests 'no.alai.dropsrbija.modules.ips.NbsIpsWireMockTest'
Result:
BUILD SUCCESSFUL
TEST-no.alai.dropsrbija.modules.ips.NbsIpsWireMockTest.xml: tests=9 failures=0 errors=0 skipped=0
Full backend test command:
JAVA_HOME=$(/usr/libexec/java_home -v 21) ./gradlew --no-daemon \
-Dorg.gradle.java.home=$(/usr/libexec/java_home -v 21) \
-Dkotlin.compiler.execution.strategy=in-process \
-Dkotlin.daemon.enabled=false \
test
Result:
BUILD SUCCESSFUL
total_suites=18 tests=131 failures=0 errors=0 skipped=0
Target XML excerpt:
<testsuite name="no.alai.dropsrbija.modules.ips.NbsIpsWireMockTest" tests="9" skipped="0" failures="0" errors="0">
<testcase name="T22-01 ACCP — initiate returns AcceptedCustomerProfile status" />
<testcase name="T22-02 ACSC — checkStatus after settlement returns AcceptedSettlementCompleted" />
<testcase name="T22-03 RJCT — bank returns Rejected status" />
<testcase name="T22-04 PDNG — initiate returns Pending, retry should be honoured" />
<testcase name="T22-05 HTTP 500 — bank server error causes BankApiException with 500 code" />
<testcase name="T22-06 Bank timeout — simulated 2s delay with 1s timeout causes BankTimeoutException" />
<testcase name="T22-07 HTTP 429 — rate limit response causes RateLimitException, not retriable immediately" />
<testcase name="T22-08 Malformed XML response — throws BankResponseParseException" />
<testcase name="T22-09 partner_bank — adapter returns correct partner name per implementation" />
</testsuite>
Hashes from archived commit rerun:
f7f3c4c6719b987cc1339cc5af4364aec0e57272138541da790d898a05724ccc build/test-results/test/TEST-no.alai.dropsrbija.modules.ips.NbsIpsWireMockTest.xml
2e7521cb049edf6ee8ce658e05208144214b78f6bcb4779241a93d0c72aaf657 src/test/kotlin/no/alai/dropsrbija/modules/ips/NbsIpsWireMockTest.kt
Current-worktree note
Running the target test directly in the current DropSrbija worktree failed before tests because later/current backend code does not compile (Complaints, MerchantsV2, RateLimitNames, Micrometer/OpenTelemetry/Sentry unresolved references, plus other model-field mismatches). Therefore the deterministic review used an archived tree of the referenced task commit 0c92e6aaf.
Recommendation
Accept MC #8005 for its core T22 WireMock deliverable. If MC evidence precision matters, amend the historical DoD note from 135 total to the reproducible archival rerun count 131 total, 0 failures or attach the original CI/test report that proves 135.
No comments to display
No comments to display