diff --git a/src/index.js b/src/index.js index eda39fe..3db2b97 100644 --- a/src/index.js +++ b/src/index.js @@ -596,7 +596,7 @@ async function getExperimentConfig(pluginOptions, metadata, overrides) { }; // get the custom labels for the variants names - const labelNames = stringToArray(metadata.names); + const labelNames = stringToArray(metadata.name); pages.forEach((page, i) => { const vname = `challenger-${i + 1}`; // label with custom name or default @@ -622,7 +622,7 @@ async function getExperimentConfig(pluginOptions, metadata, overrides) { const config = { id, - label: metadata.name || `Experiment ${metadata.value || metadata.experiment}`, + label: `Experiment ${metadata.value || metadata.experiment}`, status: metadata.status || 'active', audiences, endDate, @@ -671,9 +671,9 @@ async function getExperimentConfig(pluginOptions, metadata, overrides) { */ function parseExperimentManifest(entries) { return Object.values(Object.groupBy( - entries.map((e) => depluralizeProps(e, ['experiment', 'variant', 'split'])), + entries.map((e) => depluralizeProps(e, ['experiment', 'variant', 'split', 'name'])), ({ experiment }) => experiment, - )).map(aggregateEntries('experiment', ['split', 'url', 'variant'])); + )).map(aggregateEntries('experiment', ['split', 'url', 'variant', 'name'])); } function getUrlFromExperimentConfig(config) { diff --git a/tests/experiments.test.js b/tests/experiments.test.js index 883ce27..8405c7b 100644 --- a/tests/experiments.test.js +++ b/tests/experiments.test.js @@ -287,6 +287,7 @@ test.describe('Fragment-level experiments', () => { 'challenger-1': expect.objectContaining({ percentageSplit: '0.3333' }), 'challenger-2': expect.objectContaining({ percentageSplit: '0.3333' }), }, + label: expect.stringMatching(/Experiment Baz/), }), servedExperience: expect.stringMatching(/\/tests\/fixtures\/experiments\/(fragment|section)-level/), }), diff --git a/tests/fixtures/experiments/fragments--alt.json b/tests/fixtures/experiments/fragments--alt.json index 749999a..11466b2 100644 --- a/tests/fixtures/experiments/fragments--alt.json +++ b/tests/fixtures/experiments/fragments--alt.json @@ -4,6 +4,7 @@ "Pages": "/tests/fixtures/experiments/fragment-level--alt", "Experiments": "Baz", "Variants": "challenger-1", + "Names": "C1", "Selectors": ".fragment", "Urls": "/tests/fixtures/experiments/section-level-v1" }, @@ -11,6 +12,7 @@ "Pages": "/tests/fixtures/experiments/fragment-level--alt", "Experiments": "Baz", "Variants": "challenger-2", + "Names": "C2", "Selectors": ".fragment", "Urls": "/tests/fixtures/experiments/section-level-v2" } diff --git a/tests/fixtures/experiments/fragments.json b/tests/fixtures/experiments/fragments.json index 7fb3c72..814145d 100644 --- a/tests/fixtures/experiments/fragments.json +++ b/tests/fixtures/experiments/fragments.json @@ -4,6 +4,7 @@ "Page": "/tests/fixtures/experiments/fragment-level", "Experiment": "Baz", "Variant": "challenger-1", + "Names": "C1", "Selector": ".fragment", "Url": "/tests/fixtures/experiments/section-level-v1" }, @@ -11,6 +12,7 @@ "Page": "/tests/fixtures/experiments/fragment-level", "Experiment": "Baz", "Variant": "challenger-2", + "Names": "C2", "Selector": ".fragment", "Url": "/tests/fixtures/experiments/section-level-v2" }, @@ -18,6 +20,7 @@ "Page": "/tests/fixtures/experiments/fragment-level--async", "Experiment": "Baz", "Variant": "challenger-1", + "Names": "C1", "Selector": ".fragment", "Url": "/tests/fixtures/experiments/section-level-v1" }, @@ -25,6 +28,7 @@ "Page": "/tests/fixtures/experiments/fragment-level--async", "Experiment": "Baz", "Variant": "challenger-2", + "Names": "C2", "Selector": ".fragment", "Url": "/tests/fixtures/experiments/section-level-v2" }