Skip to content

Enrol StrongTypedIdentityCompliance (#5144) - #5198

Merged
jeremydmiller merged 1 commit into
masterfrom
compliance/wave-6
Aug 6, 2026
Merged

Enrol StrongTypedIdentityCompliance (#5144)#5198
jeremydmiller merged 1 commit into
masterfrom
compliance/wave-6

Conversation

@jeremydmiller

Copy link
Copy Markdown
Member

The StrongTypedIdentityCompliance suite shipped in JasperFx 2.42.0 (#636). It arrived in this repo with the 2.42.2 bump in #5197 — which also added the RegisterValueType<T>() registrar member the suite needs, because that member sits on IComplianceStoreRegistrar and MartenComplianceFixture had to implement it to compile at all.

The subclass closing the suite over Marten's session pair was never added, so these 11 tests have been shipping unrun on this store. This PR is the missing three lines.

What it covers

11 tests across {Guid-backed, string-backed} × {live, inline, async} × {AggregateStream, FetchForWriting, FetchForExclusiveWriting, FetchLatest} — deliberately broad, because strong-typed id failures cluster at the edges and a suite proving one path proves very little. That breadth is exactly what found the bug fixed in #5193: determineFetchPlan sent any non-Guid/string TId down the natural-key branch and stored a null identity strategy.

Cost

Nothing. No package bump (already on 2.42.2), no seam change, no alias, no fixture member. Additive file only, in its own schema (compliance_strong_typed / compliance_strong_typed_string).

Verification

strong_typed_identity_compliance 11 passed / 0 failed on net9.0. Full EventSourcingTests run attached below once complete.

Marten now runs 178 shared compliance tests across 22 suites, no capability gates.

Polecat's enrolment follows in its 2.42.2 catch-up — it is currently on 2.39.4 and a full wave behind.

Closes #5144

🤖 Generated with Claude Code

https://claude.ai/code/session_01VpDCvJcBDZerieJB4JEHde

The suite shipped in JasperFx 2.42.0 (#636) and arrived in this repo
with the 2.42.2 bump in #5197, which also added the RegisterValueType<T>()
registrar member it needs -- that member is on IComplianceStoreRegistrar, so
MartenComplianceFixture had to implement it to compile. The subclass closing the
suite over Marten's session pair was never added, so the 11 tests have been
shipping unrun on this store.

No seam change and no package bump: 11/11 green on net9.0 as-is.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VpDCvJcBDZerieJB4JEHde
@jeremydmiller

Copy link
Copy Markdown
Member Author

Full EventSourcingTests run on net9.0: 1742 passed / 0 failed / 7 skipped.

Polecat's side is now verified too — its 2.42.2 catch-up runs the same 178 compliance tests across 22 suites, zero gates, exact parity with this store. PR to follow in that repo.

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.

Compliance suite: strong-typed ids, required members and primary-constructor aggregates

1 participant