diff --git a/lib/notification_center/type.ts b/lib/notification_center/type.ts index 75cfb082f..b433c0121 100644 --- a/lib/notification_center/type.ts +++ b/lib/notification_center/type.ts @@ -94,6 +94,8 @@ export type FlagDecisionInfo = { variables: VariablesMap, reasons: string[], decisionEventDispatched: boolean, + experimentId: string | null, + variationId: string | null, }; export type DecisionInfo = { diff --git a/lib/optimizely/index.tests.js b/lib/optimizely/index.tests.js index 5ec683a92..1a64a4c46 100644 --- a/lib/optimizely/index.tests.js +++ b/lib/optimizely/index.tests.js @@ -4602,6 +4602,8 @@ describe('lib/optimizely', function() { variables: { i_42: 42 }, decisionEventDispatched: true, reasons: [], + experimentId: '10420810910', + variationId: '10418551353', }, }, ]; @@ -4652,6 +4654,8 @@ describe('lib/optimizely', function() { variables: { i_42: 42 }, decisionEventDispatched: false, reasons: [], + experimentId: '10420810910', + variationId: '10418551353', }, }, ]; @@ -4704,6 +4708,8 @@ describe('lib/optimizely', function() { variables: {}, decisionEventDispatched: false, reasons: [], + experimentId: '10420810910', + variationId: '10418551353', }, }, ]; @@ -4754,6 +4760,8 @@ describe('lib/optimizely', function() { variables: expectedVariables, decisionEventDispatched: true, reasons: [], + experimentId: '18322080788', + variationId: '18257766532', }, }, ]; @@ -4807,6 +4815,8 @@ describe('lib/optimizely', function() { variables: expectedVariables, decisionEventDispatched: false, reasons: [], + experimentId: '18322080788', + variationId: '18257766532', }, }, ]; @@ -4857,6 +4867,8 @@ describe('lib/optimizely', function() { variables: expectedVariables, decisionEventDispatched: true, reasons: [], + experimentId: null, + variationId: null, }, }, ]; @@ -4907,6 +4919,8 @@ describe('lib/optimizely', function() { variables: {}, decisionEventDispatched: true, reasons: [], + experimentId: "10420810910", + variationId: "10418551353", }, }, ]; @@ -4955,6 +4969,8 @@ describe('lib/optimizely', function() { variables: {}, decisionEventDispatched: false, reasons: [], + experimentId: '10420810910', + variationId: '10418551353', }, }, ]; @@ -5024,6 +5040,8 @@ describe('lib/optimizely', function() { variables: expectedVariables, decisionEventDispatched: false, reasons: [], + experimentId: '10420810910', + variationId: '10418551353', }, }, ]; diff --git a/lib/optimizely/index.ts b/lib/optimizely/index.ts index 6895fcea7..6e5176634 100644 --- a/lib/optimizely/index.ts +++ b/lib/optimizely/index.ts @@ -1462,7 +1462,9 @@ export default class Optimizely extends BaseService implements Client { const feature = configObj.featureKeyMap[key] const decisionSource = decisionObj.decisionSource; const experimentKey = decisionObj.experiment?.key ?? null; + const experimentId = decisionObj.experiment?.id ?? null; const variationKey = decisionObj.variation?.key ?? null; + const variationId = decisionObj.variation?.id ?? null; const flagEnabled: boolean = decision.getFeatureEnabledFromVariation(decisionObj); const variablesMap: { [key: string]: unknown } = {}; let decisionEventDispatched = false; @@ -1509,6 +1511,8 @@ export default class Optimizely extends BaseService implements Client { variables: variablesMap, reasons: reportedReasons, decisionEventDispatched: decisionEventDispatched, + experimentId: experimentId, + variationId: variationId, }; this.notificationCenter.sendNotifications(NOTIFICATION_TYPES.DECISION, { diff --git a/lib/optimizely_user_context/index.tests.js b/lib/optimizely_user_context/index.tests.js index d8f4cdf09..30e43883f 100644 --- a/lib/optimizely_user_context/index.tests.js +++ b/lib/optimizely_user_context/index.tests.js @@ -564,6 +564,8 @@ describe('lib/optimizely_user_context', function() { userId ), ], + experimentId: null, + variationId: '3324490562' }, }, ]; @@ -653,6 +655,8 @@ describe('lib/optimizely_user_context', function() { userId ), ], + experimentId: '10390977673', + variationId: '10416523121', }, }, ]; @@ -733,6 +737,8 @@ describe('lib/optimizely_user_context', function() { }, decisionEventDispatched: true, reasons: [], + experimentId: '3332020515', + variationId: '3324490633', }, }, ];