Skip to content

Compliance wave 2: retire four more hand-mirrored test pairs - #5123

Merged
jeremydmiller merged 1 commit into
masterfrom
feat/5118-compliance-wave-2
Aug 2, 2026
Merged

Compliance wave 2: retire four more hand-mirrored test pairs#5123
jeremydmiller merged 1 commit into
masterfrom
feat/5118-compliance-wave-2

Conversation

@jeremydmiller

@jeremydmiller jeremydmiller commented Aug 2, 2026

Copy link
Copy Markdown
Member

Closes #5118

Part of #5110, program #5119. The same trade #5122 made for the first four pairs, applied to four more: the behavior moves once into JasperFx.Events.ComplianceTests (JasperFx/jasperfx#608, shipping in 2.37.2), both stores enroll, and both local copies are deleted.

JasperFx 2.37.2 is published (#608 merged), and everything below was re-verified against the real package, not a local prerelease.

Retired here

Deleted Replaced by
Aggregation/auto_discover_aggregate_types.cs AutoDiscoveredAggregateCompliance
Projections/event_projection_should_register_document_types.cs EventProjectionRegistrationCompliance
Projections/event_projection_enrichment_tests.cs EventProjectionEnrichmentCompliance
rebuild_concurrency_cap_resolution.cs RebuildConcurrencyCapCompliance

Coverage went up, not down

Marten's registration test only asserted that AuditRecord reached AllKnownDocumentTypes(); Polecat's mirror only asserted PublishedTypes(). The shared suite asserts both routes and adds an end-to-end append proving the store really provisioned storage for a document type nobody registered — which is the actual point of #4166.

Harness changes

MartenComplianceFixture picks up the seam members the new suites need: StoreDocument, EventStore, AllAggregateTypes, an AddProjection registrar member, and connection-string / Projections.MaxConcurrentRebuildsPerDatabase handling for the rebuild-cap knobs.

Harness/ComplianceQuerySessionAlias.cs gains two aliases beside the existing one, because the EventProjection suites declare projection types at file scope and cannot reach the suite's generics:

global using ComplianceOperations = Marten.IDocumentOperations;
global using ComplianceEventProjection = Marten.Events.Projections.EventProjection;

Results

  • EventSourcingTests net9.0: 1614 / 0 / 7 (was 1613/0/7 — twelve local tests out, thirteen compliance tests in)
  • EventSourcingTests.Compliance alone: 55/55, no capability gates

🤖 Generated with Claude Code

https://claude.ai/code/session_01VpDCvJcBDZerieJB4JEHde

…5118)

Part of #5110 / program #5119. Moves four Marten test files onto the shared
JasperFx.Events.ComplianceTests suites (2.37.2) and deletes them here, the same
trade #5122 made for the first four.

Retired, and what replaced each:

- Aggregation/auto_discover_aggregate_types.cs -> AutoDiscoveredAggregateCompliance
- Projections/event_projection_should_register_document_types.cs ->
  EventProjectionRegistrationCompliance
- Projections/event_projection_enrichment_tests.cs ->
  EventProjectionEnrichmentCompliance
- rebuild_concurrency_cap_resolution.cs -> RebuildConcurrencyCapCompliance

Coverage went up, not down. Marten's registration test only asserted that
AuditRecord reached AllKnownDocumentTypes(); Polecat's only asserted
PublishedTypes(). The shared suite asserts both routes and adds an end-to-end
append proving the store really provisioned storage for a document type nobody
registered — the actual point of #4166.

MartenComplianceFixture picks up the seam members the new suites need:
StoreDocument, EventStore, AllAggregateTypes, an AddProjection registrar member,
and connection-string/DaemonSettings handling for the rebuild-cap knobs. The
harness alias file gains ComplianceOperations and ComplianceEventProjection
beside the existing ComplianceQuerySession, because the EventProjection suites
declare projection types at file scope and cannot reach the suite's generics.

EventSourcingTests net9.0: 1614/0/7 (was 1613/0/7 — twelve local tests out,
thirteen compliance tests in). Compliance namespace alone: 55/55, no capability
gates.

Blocked on the JasperFx 2.37.2 publish (jasperfx PR). Verified locally against a
packed prerelease of the same sources.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VpDCvJcBDZerieJB4JEHde
@jeremydmiller
jeremydmiller marked this pull request as ready for review August 2, 2026 17:04
@jeremydmiller
jeremydmiller merged commit 48d15c5 into master Aug 2, 2026
10 of 20 checks passed
@jeremydmiller
jeremydmiller deleted the feat/5118-compliance-wave-2 branch August 2, 2026 17:21
jeremydmiller added a commit that referenced this pull request Aug 2, 2026
weasel#420 + weasel#422: the identifier validation added for weasel#416 now
covers every provider migrator instead of PostgreSQL alone, and PostgreSQL's own
copy is folded onto the shared Weasel.Core helper so the providers cannot drift
apart again. SQL Server previously validated nothing at all; Oracle, MySQL and
Sqlite each missed their own quoting characters.

Marten only consumes the PostgreSQL side, so this is a hardening roll-forward
rather than a fix for a Marten-reachable hole -- 9.23.0 already carried the
PostgreSQL check that GHSA-3vp4-34pf-2rcw's class needs, and 9.21.1 carries the
partition-bound VALUES escaping. Kept as its own commit rather than riding along
with #5123, because a Weasel bump has form for landing outside the area it looks
like it touches: 9.18-9.20.1 broke Bug_4614 in CoreTests through
MatchesForDelta, nowhere near the release note.

Verified net9.0 against the published package on that history:

- CoreTests 519/0/1 (the project that caught the 9.18-9.20.1 regression)
- DocumentDbTests 1089/0/1
- EventSourcingTests 1613/0/7
- TenantPartitionedEventsTests 238/0/2 (identifier validation is closest to the
  partition naming paths)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VpDCvJcBDZerieJB4JEHde
jeremydmiller added a commit that referenced this pull request Aug 2, 2026
weasel#420 + weasel#422: the identifier validation added for weasel#416 now
covers every provider migrator instead of PostgreSQL alone, and PostgreSQL's own
copy is folded onto the shared Weasel.Core helper so the providers cannot drift
apart again. SQL Server previously validated nothing at all; Oracle, MySQL and
Sqlite each missed their own quoting characters.

Marten only consumes the PostgreSQL side, so this is a hardening roll-forward
rather than a fix for a Marten-reachable hole -- 9.23.0 already carried the
PostgreSQL check that GHSA-3vp4-34pf-2rcw's class needs, and 9.21.1 carries the
partition-bound VALUES escaping. Kept as its own commit rather than riding along
with #5123, because a Weasel bump has form for landing outside the area it looks
like it touches: 9.18-9.20.1 broke Bug_4614 in CoreTests through
MatchesForDelta, nowhere near the release note.

Verified net9.0 against the published package on that history:

- CoreTests 519/0/1 (the project that caught the 9.18-9.20.1 regression)
- DocumentDbTests 1089/0/1
- EventSourcingTests 1613/0/7
- TenantPartitionedEventsTests 238/0/2 (identifier validation is closest to the
  partition naming paths)


Claude-Session: https://claude.ai/code/session_01VpDCvJcBDZerieJB4JEHde

Co-authored-by: Claude Opus 5 (1M context) <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.

Compliance wave 2: grow suite coverage from the remaining ported pairs (P3.5)

1 participant