test: Run the FDv2 contract tests - #194
Conversation
6944725 to
ab1746f
Compare
68bf950 to
5c6a460
Compare
5c6a460 to
1b8fc83
Compare
1b8fc83 to
d28128d
Compare
3a85ea8 to
8f35a44
Compare
8f35a44 to
651dae5
Compare
482a877 to
a93bce7
Compare
c85c28e to
d4a90b4
Compare
d4a90b4 to
b78d364
Compare
b78d364 to
4753222
Compare
4753222 to
0a4ce17
Compare
0a4ce17 to
b156124
Compare
2847233 to
4fe30d3
Compare
21f13be to
7848a93
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit c7e15f6. Configure here.
| .or_else(|| derive_fallback_base_url(&synchronizers)), | ||
| fallback.poll_interval_ms, | ||
| )), | ||
| None => select_fallback_synchronizer(&synchronizers).map(|sync| { |
There was a problem hiding this comment.
I don't think you should have to do all of this. If there isn't a fallback provided by the test harness, you should assume we don't want one set and just leave it as optional.
410d95e to
b62264c
Compare
|
|
||
| # Rust honors the TTL-based FDv1 fallback directive (SDK-2527). | ||
| # This scenario tests the terminal semantics instead. | ||
| streaming/fdv2/FDv1 fallback directive/directive without FDv1 fallback configured halts the data system |
There was a problem hiding this comment.
Do you still need this suppression once we changed the FDv1 configuration stuff?
There was a problem hiding this comment.
Oh, good catch! I had thought that was failing because of the changes to our FDv1 fallback logic, but you're right. It was the bug with how we configured for contract tests.
b62264c to
f220bce
Compare
f220bce to
9edc163
Compare

Summary
Runs the cross-SDK FDv2 contract test suite against the SDK to exercise the data system end to end. The contract test service now accepts the harness's data system configuration and drives it through the public
DataSystemBuilder. CI runs both the FDv1 and FDv2 suites.The service advertises the
fdv1-fallbackcapability so the fallback-directive scenarios run. There is no FDv2 capability flag, so the suite is selected by the harness version.A suppression file skips scenarios that do not apply to this SDK:
Note
Overview
Adds cross-SDK FDv2 contract test coverage by extending the contract-test service and running both harness versions in CI.
The harness can now pass
dataSystemconfiguration (initializers, synchronizers, FDv1 fallback). The service maps that toDataSystemBuilderwith FDv2 streaming/polling builders and advertises thefdv1-fallbackcapability. Client setup builds a fresh transport per SDK component (shared connector only), matching normal SDK behavior.CI/Makefile: bumps the contract-tests action to v1.3.0, runs FDv1 then FDv2 (
version: v3) against one background service (stop_service: falseon the first run), and adds localcontract-tests-fdv2/run-contract-tests-fdv2with a dedicated suppressions file for the v3 harness (includes existing FDv1 skips).Dependency:
launchdarkly-server-sdk-evaluation2.2.0 → 2.2.1 (patch).Reviewed by Cursor Bugbot for commit 9edc163. Bugbot is set up for automated code reviews on this repo. Configure here.