Skip to content

chore(projections): retire redundant TCP client coverage - #491

Open
yordis wants to merge 1 commit into
yordis/chore-retire-clientapi-streamsfrom
yordis/chore-retire-projection-clientapi
Open

chore(projections): retire redundant TCP client coverage#491
yordis wants to merge 1 commit into
yordis/chore-retire-clientapi-streamsfrom
yordis/chore-retire-projection-clientapi

Conversation

@yordis

@yordis yordis commented Sep 12, 2026

Copy link
Copy Markdown
Member
  • Avoids maintaining projection coverage for a client protocol that is no longer supported.

@yordis
yordis requested a review from a team as a code owner September 12, 2026 23:21
@cursor

cursor Bot commented Sep 12, 2026

Copy link
Copy Markdown

PR Summary

Low Risk
Test-only deletions with no production or runtime behavior changes; main risk is reduced automated coverage for projection edge cases previously guarded by these integration tests.

Overview
Removes the EventStore.Projections.Core.Tests ClientAPI integration suite that exercised projections through the legacy TCP IEventStoreConnection stack (single-node MiniNode and 3-node cluster fixtures).

Deleted coverage includes shared bases (specification_with_standard_projections_runnning, cluster variant), RecordedEventExtensions, and scenarios for standard projections, listing/management, event-by-type indexing, $created / $deleted foreach projections (including recovery and standard-index interactions), plus the explicit cluster smoke test.

This aligns test maintenance with retiring projection coverage for the unsupported client protocol; ProjectionManagementTestClient and non-ClientAPI projection tests are unchanged.

Reviewed by Cursor Bugbot for commit c742a4b. Bugbot is set up for automated code reviews on this repo. Configure here.

@coderabbitai

coderabbitai Bot commented Sep 12, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: 6062a876-eaf7-4234-89aa-124fe9141f79

📥 Commits

Reviewing files that changed from the base of the PR and between 03623f8 and c742a4b.

📒 Files selected for processing (32)
  • src/EventStore.Projections.Core.Tests/ClientAPI/Cluster/specification_with_standard_projections_runnning.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/RecordedEventExtensions.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/event_by_type_index.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/event_by_type_index/when_reverting_after_index_catches_up.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/list_projections.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/specification_with_standard_projections_runnning.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/with_from_all_any_foreach_projection/when_running_and_events_are_posted.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/with_from_all_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/with_from_category_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/recovery/when_running_and_a_stream_gets_deleted_before_recovery.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/recovery/when_running_and_events_are_posted.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted_but_a_stream_and_tombstone_postponed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted_but_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted_including_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_then_other_events_tombstone_ant_other_events.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/recovery/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/recovery/when_running_and_events_get_indexed_before_recovery.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed_but_a_stream_and_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed_but_more_events_and_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed_but_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_no_indexing.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_no_indexing_and_other_events.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/recovery/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/recovery/when_running_and_events_get_indexed_before_recovery.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_but_a_stream_and_tombstone_postponed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_but_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_including_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_then_other_events_tombstone_ant_other_events.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/with_standard_projections_running.cs
💤 Files with no reviewable changes (32)
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed_but_more_events_and_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/event_by_type_index.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_then_other_events_tombstone_ant_other_events.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted_but_a_stream_and_tombstone_postponed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/with_from_all_any_foreach_projection/when_running_and_events_are_posted.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/recovery/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_but_a_stream_and_tombstone_postponed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed_but_a_stream_and_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/with_standard_projections_running.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_but_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed_but_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_then_other_events_tombstone_ant_other_events.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/recovery/when_running_and_events_get_indexed_before_recovery.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted_including_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_no_indexing.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/recovery/when_running_and_a_stream_gets_deleted_before_recovery.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/event_by_type_index/when_reverting_after_index_catches_up.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/list_projections.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/with_from_category_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/specification_with_standard_projections_runnning.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_no_indexing_and_other_events.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/recovery/when_running_and_events_are_posted.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/with_from_all_foreach_projection/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_all_any_foreach_projection/when_running_and_events_are_posted_but_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/RecordedEventExtensions.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/when_running_and_events_are_indexed_including_tombstone.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/recovery/when_running_and_events_get_indexed_before_recovery.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/with_from_category_foreach_projection/recovery/when_running_and_events_are_indexed.cs
  • src/EventStore.Projections.Core.Tests/ClientAPI/Cluster/specification_with_standard_projections_runnning.cs

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The pull request deletes shared projection test infrastructure and client API tests. It removes coverage for event indexing, projection listing, created notifications, deleted notifications, recovery, tombstones, and hard or soft stream deletion.

Changes

Projection client test removal

Layer / File(s) Summary
Shared projection test harness
src/EventStore.Projections.Core.Tests/ClientAPI/Cluster/..., src/EventStore.Projections.Core.Tests/ClientAPI/specification_with_standard_projections_runnning.cs, src/EventStore.Projections.Core.Tests/ClientAPI/RecordedEventExtensions.cs
The shared cluster fixture, projection lifecycle helpers, stream assertions, and recorded-event debug extensions are deleted.
Client API projection tests
src/EventStore.Projections.Core.Tests/ClientAPI/event_by_type_index.cs, src/EventStore.Projections.Core.Tests/ClientAPI/event_by_type_index/..., src/EventStore.Projections.Core.Tests/ClientAPI/list_projections.cs
Tests for event-type indexing, index catch-up, and projection listing are deleted.
Created notification tests
src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_created/...
Tests for $created handling in fromAll().foreachStream() and fromCategory(...).foreachStream() projections are deleted.
Standard projection stream deletion tests
src/EventStore.Projections.Core.Tests/ClientAPI/with_standard_projections_running.cs
Tests for hard deletion, soft deletion, $streams, $ce-cat, and $et-$deleted streams are deleted.
Deleted notification and recovery tests
src/EventStore.Projections.Core.Tests/ClientAPI/when_handling_deleted/...
Tests for $deleted notifications across indexed, non-indexed, tombstoned, interleaved-event, and recovery scenarios are deleted.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to c742a

The change removes obsolete TCP projection client test coverage without an established build or runtime regression.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.
Description check ✅ Passed The description states that the pull request retires projection coverage for an unsupported client protocol. This matches the deleted TCP client test coverage.
Title check ✅ Passed The title clearly identifies the retirement of redundant projection coverage for the TCP client. It matches the main change.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch yordis/chore-retire-projection-clientapi

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

A rabbit finds empty test files in the burrow
Shared helpers rest beneath the moon
Created and deleted trails fade
Tombstones lose their watchful tune
The projection garden grows quiet

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

@yordis
yordis added this pull request to stack #500 September 12, 2026 23:22
@yordis
yordis force-pushed the yordis/chore-retire-projection-clientapi branch 2 times, most recently from d1c3aac to 7c7165c Compare September 13, 2026 00:33
@yordis
yordis force-pushed the yordis/chore-retire-projection-clientapi branch from 7c7165c to eef456c Compare September 13, 2026 00:58
@yordis
yordis force-pushed the yordis/chore-retire-projection-clientapi branch 2 times, most recently from 2133195 to d81d94a Compare September 13, 2026 01:31
@yordis
yordis force-pushed the yordis/chore-retire-projection-clientapi branch 2 times, most recently from 48881e5 to 4c0b552 Compare September 13, 2026 02:04
@yordis
yordis force-pushed the yordis/chore-retire-projection-clientapi branch from 4c0b552 to 895af33 Compare September 13, 2026 02:29
@yordis
yordis force-pushed the yordis/chore-retire-projection-clientapi branch from 895af33 to bb705f5 Compare September 13, 2026 02:59
@yordis
yordis force-pushed the yordis/chore-retire-projection-clientapi branch from bb705f5 to 4115926 Compare September 13, 2026 03:14
@yordis
yordis force-pushed the yordis/chore-retire-projection-clientapi branch 2 times, most recently from 25b25e7 to cb7ff4f Compare September 13, 2026 04:23
Signed-off-by: Yordis Prieto <yordis.prieto@gmail.com>
@yordis
yordis force-pushed the yordis/chore-retire-projection-clientapi branch from cb7ff4f to c742a4b Compare September 13, 2026 06:04
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