Skip to content

Enable EVP flagevaluation system tests for Node.js#7182

Draft
leoromanovsky wants to merge 7 commits into
mainfrom
leo.romanovsky/ffe-evp-flagevaluation-enable-nodejs-clean
Draft

Enable EVP flagevaluation system tests for Node.js#7182
leoromanovsky wants to merge 7 commits into
mainfrom
leo.romanovsky/ffe-evp-flagevaluation-enable-nodejs-clean

Conversation

@leoromanovsky

@leoromanovsky leoromanovsky commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Motivation

Node.js needs the shared server-side EVP flagevaluation system-test contract enabled so reviewers can verify that the tracer and OpenFeature client changes emit the backend-visible evaluation signal consistently with the other SDKs. This PR gives the Node.js fanout a public system-tests companion for the customer-facing batching and aggregation behavior.

Changes

  • Enables tests/ffe/test_flag_eval_evp.py for the validated Node.js express4 weblog in manifests/nodejs.yml at *ref_6_0_0; other Node.js weblogs remain incomplete_test_app.
  • Splits the degradation test request into bounded targetingKeys batches so the test proves SDK aggregation without requiring one oversized app request.
  • Keeps the EVP path constant aligned with the current merged system-tests contract.

Decisions

  • Enable only express4 for this PR because that is the Node.js weblog covered by the companion tracer/OpenFeature validation.
  • Keep degradation batching in the system test because app request body limits are separate from the SDK EVP payload-splitting behavior under review.
  • Existing OTel metric coverage stays in tests/ffe/test_flag_eval_metrics.py; this PR is only for EVP flagevaluation.

Validation Evidence

System Tests

@github-actions

github-actions Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

CODEOWNERS have been resolved as:

manifests/nodejs.yml                                                    @DataDog/dd-trace-js
tests/ffe/test_flag_eval_evp.py                                         @DataDog/feature-flagging-and-experimentation-sdk @DataDog/system-tests-core

@datadog-prod-us1-6

datadog-prod-us1-6 Bot commented Jun 20, 2026

Copy link
Copy Markdown

Pipelines  Tests

Fix all issues with BitsAI

⚠️ Warnings

🚦 4 Pipeline jobs failed

Testing the test | System Tests (nodejs, dev) / End-to-end #1 / express4 1   View in Datadog   GitHub Actions

🧪 8 Tests failed

tests.ffe.test_flag_eval_evp.Test_FFE_EVP_Flagevaluation_Basic.test_ffe_evp_flagevaluation_basic[express4] from system_tests_suite   View in Datadog
AssertionError: Timed out waiting for EVP flagevaluation event for flag evp-basic-flag
assert False
 +  where False = <bound method ProxyBasedInterfaceValidator.wait_for of AgentInterfaceValidator('agent')>(<function wait_for_evp_flagevaluation_event.<locals>.<lambda> at 0x7f56c3b3ce00>, timeout=30)
 +    where <bound method ProxyBasedInterfaceValidator.wait_for of AgentInterfaceValidator('agent')> = AgentInterfaceValidator('agent').wait_for
 +      where AgentInterfaceValidator('agent') = interfaces.agent

self = <tests.ffe.test_flag_eval_evp.Test_FFE_EVP_Flagevaluation_Basic object at 0x7f56f4118590>

    def test_ffe_evp_flagevaluation_basic(self) -> None:
        assert self.r.status_code == 200, f"Flag evaluation failed: {self.r.text}"
...
tests.ffe.test_flag_eval_evp.Test_FFE_EVP_Flagevaluation_Burst_Aggregation.test_ffe_evp_flagevaluation_burst_aggregation[express4] from system_tests_suite   View in Datadog
AssertionError: Timed out waiting for EVP flagevaluation event for flag evp-burst-aggregation-flag
assert False
 +  where False = <bound method ProxyBasedInterfaceValidator.wait_for of AgentInterfaceValidator('agent')>(<function wait_for_evp_flagevaluation_event.<locals>.<lambda> at 0x7f56c3c3e7a0>, timeout=30)
 +    where <bound method ProxyBasedInterfaceValidator.wait_for of AgentInterfaceValidator('agent')> = AgentInterfaceValidator('agent').wait_for
 +      where AgentInterfaceValidator('agent') = interfaces.agent

self = <tests.ffe.test_flag_eval_evp.Test_FFE_EVP_Flagevaluation_Burst_Aggregation object at 0x7f56f4119250>

    def test_ffe_evp_flagevaluation_burst_aggregation(self) -> None:
        for index, response in enumerate(self.responses):
...
View all 8 test failures

Testing the test | System Tests (php, prod) / End-to-end #1 / apache-mod-7.4-zts 1   View in Datadog   GitHub Actions

🧪 1 Test failed

tests.ffe.test_exposures.Test_FFE_Exposure_Events.test_ffe_multiple_remote_config_files[apache-mod-7.4-zts] from system_tests_suite   View in Datadog
AssertionError: Timed out waiting for exposure event for flags ['test-flag-1', 'test-flag-2'] and subject 'test-user-multi'
assert False
 +  where False = <bound method ProxyBasedInterfaceValidator.wait_for of AgentInterfaceValidator('agent')>(<function wait_for_exposure_event.<locals>.<lambda> at 0x7f0e43126de0>, timeout=30)
 +    where <bound method ProxyBasedInterfaceValidator.wait_for of AgentInterfaceValidator('agent')> = AgentInterfaceValidator('agent').wait_for
 +      where AgentInterfaceValidator('agent') = interfaces.agent

self = <tests.ffe.test_exposures.Test_FFE_Exposure_Events object at 0x7f0e69ee7710>

    def test_ffe_multiple_remote_config_files(self):
        """Test that FFE correctly handles multiple remote config files with different flags."""
...

Testing the test | System Tests (cpp_nginx, prod) / Build end-to-end (nginx)   View in Datadog   GitHub Actions

View all 4 failed jobs.

ℹ️ Info

No other issues found (see more)

❄️ No new flaky tests detected

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 39ad6a3 | Docs | Datadog PR Page | Give us feedback!

@datadog-system-tests-org

datadog-system-tests-org Bot commented Jun 20, 2026

Copy link
Copy Markdown

Pipelines

⚠️ Warnings

🚦 4 Pipeline jobs failed

Testing the test | System Tests (nodejs, dev) / End-to-end #1 / express4 1   View in Datadog   GitHub Actions

Testing the test | System Tests (php, dev) / End-to-end #1 / apache-mod-8.0 1   View in Datadog   GitHub Actions

Testing the test | System Tests (php, prod) / End-to-end #1 / apache-mod-7.3 1   View in Datadog   GitHub Actions

View all 4 failed jobs.

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: a03c3fb | Docs | Give us feedback!

Base automatically changed from leo.romanovsky/ffe-evp-flagevaluation-contract-fix to main June 22, 2026 19:40
…p-flagevaluation-enable-nodejs-clean

# Conflicts:
#	tests/ffe/test_flag_eval_evp.py
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.

2 participants