Skip to content

ci: wire Payment + Shipping integration tests into CI#109

Merged
emeraldleaf merged 1 commit into
mainfrom
ci/wire-payment-shipping-integration
Jun 4, 2026
Merged

ci: wire Payment + Shipping integration tests into CI#109
emeraldleaf merged 1 commit into
mainfrom
ci/wire-payment-shipping-integration

Conversation

@emeraldleaf

@emeraldleaf emeraldleaf commented Jun 4, 2026

Copy link
Copy Markdown
Owner

Summary

The `integration-tests` job in ci.yml ran only the Catalog + Order slices. The Payment and Shipping integration projects existed and ran locally but were never added to CI — drift between disk reality and the CI workflow.

Why

  • STATUS.md claimed "all four services...green in CI and locally" — aspirational.
  • CLAUDE.md "Testing" said "CatalogService slice and OrderService slice exist" — accurate as of when written, stale now.
  • Discovered while answering "do the integration tests create docker test images in github" — `tests/` listing showed four integration projects, `ci.yml` showed two.

What changed

  • `ci.yml`: two new `dotnet test` steps (Payment + Shipping), each its own step so single-slice failures surface by name.
  • CLAUDE.md "Testing": updated the integration-tests bullet to enumerate all four slices, name what each proves, and call out that each is wired as its own CI step.

What this proves

  • Catalog → Postgres + Redis (caching, `xmin` concurrency, IDOR)
  • Order → SQL Server + Wolverine stubbed (outbox, saga publish, `RowVersion`)
  • Payment → SQL Server (outbox-in-non-handler wrap, retry/recovery job)
  • Shipping → Postgres (IDOR by order, saga consume handlers)

Runtime cost

~1-2 min added to the integration-tests job for MsSql + Postgres container boots. Acceptable — the job is parallel with the fast unit job, so wall-clock PR latency is bounded by whichever was already slower.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores

    • Extended CI integration test pipeline to include PaymentService and ShippingService projects with code coverage collection and result tracking.
  • Documentation

    • Updated testing guidance to document expanded integration test coverage across four services.

The integration-tests job ran only the Catalog (Postgres + Redis) and
Order (SQL Server + Wolverine outbox) slices. Payment + Shipping shipped
their own integration projects but were never added to ci.yml — so
PaymentService.Tests.Integration (SQL Server, outbox-in-non-handler wrap,
recovery job) and ShippingService.Tests.Integration (Postgres, IDOR + saga
consume-side handlers) ran locally but not in CI.

This is the gap that contradicted CLAUDE.md "Testing" — the rule said
"CatalogService slice and OrderService slice exist" while STATUS.md
claimed "all four services...green in CI." STATUS.md was the aspirational
one; CLAUDE.md was the accurate one until now. Adding the two missing
steps closes the gap and updates CLAUDE.md's Testing rule to list all
four slices + name CI as the place they run.

Each slice is its own step so a single-slice failure surfaces by name
instead of masking other failures in a bundled run. Runtime cost: ~1-2 min
added to the integration-tests job for two more container boots
(MsSql + Postgres).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@codecov

codecov Bot commented Jun 4, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@coderabbitai

coderabbitai Bot commented Jun 4, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

Pull request was closed or merged during review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: ec9c3277-7931-4531-a825-428ee3c2377d

📥 Commits

Reviewing files that changed from the base of the PR and between 595add6 and a2eaaea.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • CLAUDE.md

Walkthrough

This PR extends the CI integration test suite by adding Payment and Shipping service tests to the existing pipeline, alongside Catalog and Order service tests. The workflow steps produce standard TRX and coverage artifacts, and testing documentation is updated to describe all four services.

Changes

Integration Test Coverage Expansion

Layer / File(s) Summary
Integration test expansion for Payment and Shipping services
.github/workflows/ci.yml, CLAUDE.md
CI workflow adds two new steps to run PaymentService.Tests.Integration and ShippingService.Tests.Integration with TRX log files (payment-integration.trx, shipping-integration.trx) and Cobertura coverage artifacts. Testing documentation is updated from two to four integrated services, adding service-specific coverage notes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • emeraldleaf/NextAurora#17: Both PRs modify .github/workflows/ci.yml integration test behavior by adding --collect:"XPlat Code Coverage" and related coverage artifact handling, establishing the foundation for these new Payment and Shipping integration test steps.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and specifically describes the main change: adding Payment and Shipping service integration tests to the CI workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/wire-payment-shipping-integration

Comment @coderabbitai help to get the list of available commands and usage tips.

@emeraldleaf emeraldleaf merged commit 9454e6d into main Jun 4, 2026
6 of 7 checks passed
@emeraldleaf emeraldleaf deleted the ci/wire-payment-shipping-integration branch June 4, 2026 03:13
emeraldleaf added a commit that referenced this pull request Jun 4, 2026
After #109 wired Payment + Shipping integration tests into CI, two doc
sites still claimed only the Catalog + Order slices existed:

- README.md "Verification at every layer" listed only Catalog (Postgres +
  Redis) and Order (SQL Server + stubbed Wolverine). The "134 unit +
  integration slices" count had also drifted to 142.
- docs/architecture.md "Gaps & Future Work" said "CatalogService and
  OrderService single-service slices exist" and framed the cross-service
  gap as the only remaining work.

Surfaced by a doc-drift sweep after the /check-rules audit.

Changes:
- README: list all four slices with their containers; rephrase the test
  count as "100+ unit + integration tests" instead of a precise number
  that drifts every PR.
- architecture.md: update the slice list to all four; clarify that the
  remaining gap is wire-level cross-service coverage specifically.

No rule changes; pure documentation refresh.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant