Skip to content

feat: Implement flag change listener tests in the Go Server SDK#349

Draft
aaron-zeisler wants to merge 3 commits intov7from
aaronz/flag-change-listener-tests
Draft

feat: Implement flag change listener tests in the Go Server SDK#349
aaron-zeisler wants to merge 3 commits intov7from
aaronz/flag-change-listener-tests

Conversation

@aaron-zeisler
Copy link
Contributor

Requirements

  • I have added test coverage for new or changed functionality
  • I have followed the repository's pull request submission guidelines
  • I have validated my changes against all supported platform versions

Related issues

Provide links to any issues in this repository or elsewhere relating to this pull request.

Describe the solution you've provided

Provide a clear and concise description of what you expect to happen.

Describe alternatives you've considered

Provide a clear and concise description of any alternative solutions or features you've considered.

Additional context

Add any other context about the pull request here.

@aaron-zeisler aaron-zeisler force-pushed the aaronz/flag-change-listener-tests branch from 1d72e2b to f0cb6aa Compare February 19, 2026 01:12
Add command constants, parameter structs, and the ListenerNotification
payload type to support the three new flag change listener commands:
registerFlagChangeListener, registerFlagValueChangeListener, and
unregisterListener. Also adds the CapabilityFlagChangeListeners constant
to service_params.go.

No runtime behavior is introduced in this commit; these are pure type
definitions that subsequent commits will build on.
Add flag_change_listener.go with a listenerRegistry that manages
goroutine-based subscriptions to the SDK's FlagTracker channels.
Each registered listener spawns a goroutine that consumes SDK events
and POSTs a ListenerNotification JSON payload to the provided callback
URI. General flag change listeners support optional key filtering;
value change listeners include old and new values in the payload.

Wire the three new commands into SDKClientEntity.DoCommand:
registerFlagChangeListener, registerFlagValueChangeListener, and
unregisterListener. Also calls closeAll() in Close() to cancel all
listener goroutines before the SDK client shuts down.

The flag-change-listeners capability is not yet advertised, so no
test harness tests are run yet.
Add CapabilityFlagChangeListeners to the test service capabilities list.
All 8 flag change listener tests pass against the sdk-test-harness.
@aaron-zeisler aaron-zeisler force-pushed the aaronz/flag-change-listener-tests branch from f0cb6aa to 06224bc Compare February 19, 2026 17:46
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

Comments