S3C-11127: add functional tests for the notification delivery pool - #2802
Draft
anurag4DSB wants to merge 9 commits into
Draft
S3C-11127: add functional tests for the notification delivery pool#2802anurag4DSB wants to merge 9 commits into
anurag4DSB wants to merge 9 commits into
Conversation
Aligns the environment variable with the name the federation supervisord template exports per worker program. Behaviour is unchanged: a valid integer replaces the configured probe server port and the rest of the probe server config is kept, anything else falls back to the configured port with a warning.
Restores the environment variable name the federation supervisord template exports and the contract pins. The resolution itself is unchanged: a valid integer replaces the configured probe server port and the rest of the probe server config is kept, anything else falls back to the configured port, with a warning when the value was non-empty.
…mper spread comments
Codecov Report❌ Patch coverage is
Additional details and impacted files
@@ Coverage Diff @@
## poc/S3C-11127-integration-base #2802 +/- ##
=================================================================
Coverage ? 74.37%
=================================================================
Files ? 207
Lines ? 14250
Branches ? 0
=================================================================
Hits ? 10599
Misses ? 3641
Partials ? 10
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Intent: why does this change exist?
The three halves of the delivery pool were each unit tested on their own, which cannot catch them drifting apart from each other. This adds functional coverage that runs the real components against a real broker.
System impact: what's affected, including downstream?
Tests and one npm script. The suite has its own entry point,
yarn ft_test:notification:deliverypool, and sits outside the notification glob so it does not share a mocha process with the other notification functional tests: the delivery pool builds several consumers per run, and the wedge described below gets likelier the more a single process builds. Two things a reviewer should know: the file is still inside the broadft_testglob, and no CI job runs this suite today.Preserved behavior: what explicitly stays the same?
No behavior changes. The one production file in the diff, NotificationConfigValidator.js, gains a comment on the spreadFactor field and nothing else, and the unit test file comes in through the stack rather than from this work.
Intended change: what's different after this PR?
Adds functional suites for delivery, worker restart, the drainer and the drop path. It also adds a seam test that drives the real populator into the real worker, rather than synthesizing the addressed record the way the other cases do, so the populator and worker halves cannot drift while every test stays green. Every topic of a run is created and confirmed cluster wide before any consumer is built, which mirrors the deployment, where the delivery topic is pre-created before the workers start, and is what turned the restart case from never passing into passing every time.
Verification: how do we know this worked, or how would we know if it didn't?
All 15 tests pass against a live broker. The delivery, restart and drainer suites have each gone green twice in a row; the drop and seam suites have gone green repeatedly but not yet twice consecutively. Every red run is the pre-existing consumer wedge, which reproduces with a bare BackbeatConsumer and no notification code in the process, so it is documented separately and is not evidence about this change. These runs were local against a kafka 3.9 broker built from .github/dockerfiles/kafka, not CI.