From 34c01f37292ddd7f402234570c1d4830709b6331 Mon Sep 17 00:00:00 2001 From: Indermohan Singh Date: Fri, 19 Dec 2025 12:51:41 +0100 Subject: [PATCH] feat: enable metadata tests for flagd #1290 Signed-off-by: Indermohan Singh --- libs/providers/flagd/src/e2e/step-definitions/flagSteps.ts | 7 +++++-- .../flagd/src/e2e/step-definitions/providerSteps.ts | 4 ++++ libs/providers/flagd/src/e2e/tests/in-process.spec.ts | 2 +- libs/providers/flagd/src/e2e/tests/rpc.spec.ts | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libs/providers/flagd/src/e2e/step-definitions/flagSteps.ts b/libs/providers/flagd/src/e2e/step-definitions/flagSteps.ts index 768865f97..26a07fa3f 100644 --- a/libs/providers/flagd/src/e2e/step-definitions/flagSteps.ts +++ b/libs/providers/flagd/src/e2e/step-definitions/flagSteps.ts @@ -73,10 +73,13 @@ export const flagSteps: Steps = }); then('the resolved metadata should contain', (table) => { - // TODO: implement metadata tests, https://github.com/open-feature/js-sdk-contrib/issues/1290 + table.forEach((row: { key: string; metadata_type: string; value: string }) => { + const expectedValue = mapValueToType(row.value, row.metadata_type); + expect(state.details?.flagMetadata).toHaveProperty(row.key, expectedValue); + }); }); then('the resolved metadata is empty', () => { - // TODO: implement metadata tests, https://github.com/open-feature/js-sdk-contrib/issues/1290 + expect(state.details?.flagMetadata).toEqual({}); }); }; diff --git a/libs/providers/flagd/src/e2e/step-definitions/providerSteps.ts b/libs/providers/flagd/src/e2e/step-definitions/providerSteps.ts index 236f0aea8..6ad038ab5 100644 --- a/libs/providers/flagd/src/e2e/step-definitions/providerSteps.ts +++ b/libs/providers/flagd/src/e2e/step-definitions/providerSteps.ts @@ -67,6 +67,10 @@ export const providerSteps: Steps = flagdOptions['port'] = container.getPort(state.resolverType); type = 'sync-payload'; break; + case 'metadata': + flagdOptions['port'] = container.getPort(state.resolverType); + type = 'metadata'; + break; default: throw new Error('unknown provider type: ' + providerType); } diff --git a/libs/providers/flagd/src/e2e/tests/in-process.spec.ts b/libs/providers/flagd/src/e2e/tests/in-process.spec.ts index ce3fd2ad5..2ac7040ff 100644 --- a/libs/providers/flagd/src/e2e/tests/in-process.spec.ts +++ b/libs/providers/flagd/src/e2e/tests/in-process.spec.ts @@ -22,7 +22,7 @@ describe('in-process', () => { // remove filters as we add support for features // see: https://github.com/open-feature/js-sdk-contrib/issues/1096 and child issues tagFilter: - '@in-process and not @targetURI and not @forbidden and not @events and not @sync and not @grace and not @metadata and not @unixsocket', + '@in-process and not @targetURI and not @forbidden and not @events and not @sync and not @grace and not @unixsocket', scenarioNameTemplate: (vars) => { return `${vars.scenarioTitle} (${vars.scenarioTags.join(',')} ${vars.featureTags.join(',')})`; }, diff --git a/libs/providers/flagd/src/e2e/tests/rpc.spec.ts b/libs/providers/flagd/src/e2e/tests/rpc.spec.ts index e0109faf1..bec38a8ef 100644 --- a/libs/providers/flagd/src/e2e/tests/rpc.spec.ts +++ b/libs/providers/flagd/src/e2e/tests/rpc.spec.ts @@ -23,7 +23,7 @@ describe('rpc', () => { tagFilter: // remove filters as we add support for features // see: https://github.com/open-feature/js-sdk-contrib/issues/1096 and child issues - '@rpc and not @targetURI and not @forbidden and not @events and not @stream and not @grace and not @metadata and not @caching and not @unixsocket', + '@rpc and not @targetURI and not @forbidden and not @events and not @stream and not @grace and not @caching and not @unixsocket', scenarioNameTemplate: (vars) => { return `${vars.scenarioTitle} (${vars.scenarioTags.join(',')} ${vars.featureTags.join(',')})`; },