From 0f19b466a360789662b68b361c7296bcf5dc7755 Mon Sep 17 00:00:00 2001 From: Jonas Alves Date: Thu, 30 Apr 2026 10:02:53 +0100 Subject: [PATCH] refactor(tests): extract buildCreateChange helper for 6F suite Addresses CodeRabbit nitpick on PR #5: the create-change payloads were duplicated across 6F2-6F8. Add a buildCreateChange(overrides) helper near the imports and route the 6F2-6F8 tests through it. Each test now declares only the fields that vary (targetSelector, element, position, malformed). No behavioural change - all 263 tests pass. --- ...gesPluginLite.crossVariantExposure.test.ts | 127 +++++------------- 1 file changed, 36 insertions(+), 91 deletions(-) diff --git a/src/core/__tests__/DOMChangesPluginLite.crossVariantExposure.test.ts b/src/core/__tests__/DOMChangesPluginLite.crossVariantExposure.test.ts index 0c7e0f3..e497c87 100644 --- a/src/core/__tests__/DOMChangesPluginLite.crossVariantExposure.test.ts +++ b/src/core/__tests__/DOMChangesPluginLite.crossVariantExposure.test.ts @@ -1,6 +1,21 @@ import { DOMChangesPluginLite } from '../DOMChangesPluginLite'; import { createTreatmentTracker } from '../../__tests__/sdk-helper'; -import { ExperimentData } from '../../types'; +import { DOMChange, ExperimentData } from '../../types'; + +/** + * Build a `create`-type DOMChange for the 6F tests with sensible defaults. + * Override only the fields that vary per test (e.g., targetSelector, position, + * trigger_on_view) instead of repeating the full payload. + */ +const buildCreateChange = (overrides: Partial = {}): DOMChange => ({ + selector: '', + type: 'create', + element: '
', + targetSelector: '.container', + position: 'lastChild', + trigger_on_view: true, + ...overrides, +}); /** * Comprehensive Cross-Variant Exposure Tracking Tests @@ -4050,16 +4065,7 @@ describe('DOMChangesPluginLite - Comprehensive Cross-Variant Exposure Tracking', { variables: {} }, { variables: { - __dom_changes: [ - { - selector: '', - type: 'create', - element: '
New
', - targetSelector: '.container', - position: 'lastChild', - trigger_on_view: true, - }, - ], + __dom_changes: [buildCreateChange()], }, }, ], @@ -4096,16 +4102,7 @@ describe('DOMChangesPluginLite - Comprehensive Cross-Variant Exposure Tracking', { variables: { __dom_changes: [] } }, { variables: { - __dom_changes: [ - { - selector: '', - type: 'create', - element: '
New
', - targetSelector: '.container', - position: 'lastChild', - trigger_on_view: true, - }, - ], + __dom_changes: [buildCreateChange()], }, }, ], @@ -4153,28 +4150,22 @@ describe('DOMChangesPluginLite - Comprehensive Cross-Variant Exposure Tracking', { variables: { __dom_changes: [ - { - selector: '', - type: 'create', + buildCreateChange({ element: '', targetSelector: '.header', position: 'lastChild', - trigger_on_view: true, - }, + }), ], }, }, { variables: { __dom_changes: [ - { - selector: '', - type: 'create', + buildCreateChange({ element: '', targetSelector: '.footer', position: 'firstChild', - trigger_on_view: true, - }, + }), ], }, }, @@ -4214,28 +4205,22 @@ describe('DOMChangesPluginLite - Comprehensive Cross-Variant Exposure Tracking', { variables: { __dom_changes: [ - { - selector: '', - type: 'create', + buildCreateChange({ element: '', targetSelector: '.header', position: 'lastChild', - trigger_on_view: true, - }, + }), ], }, }, { variables: { __dom_changes: [ - { - selector: '', - type: 'create', + buildCreateChange({ element: '', targetSelector: '.footer', position: 'firstChild', - trigger_on_view: true, - }, + }), ], }, }, @@ -4270,30 +4255,12 @@ describe('DOMChangesPluginLite - Comprehensive Cross-Variant Exposure Tracking', { variables: { __dom_changes: [] } }, { variables: { - __dom_changes: [ - { - selector: '', - type: 'create', - element: '
', - targetSelector: '.container', - position: 'lastChild', - trigger_on_view: true, - }, - ], + __dom_changes: [buildCreateChange({ element: '
' })], }, }, { variables: { - __dom_changes: [ - { - selector: '', - type: 'create', - element: '
', - targetSelector: '.container', - position: 'lastChild', - trigger_on_view: true, - }, - ], + __dom_changes: [buildCreateChange({ element: '
' })], }, }, ], @@ -4326,12 +4293,10 @@ describe('DOMChangesPluginLite - Comprehensive Cross-Variant Exposure Tracking', { variables: { __dom_changes: [ - { - selector: '', - type: 'create', + buildCreateChange({ element: '
', - trigger_on_view: true, - } as any, + targetSelector: undefined, + }), ], }, }, @@ -4364,12 +4329,10 @@ describe('DOMChangesPluginLite - Comprehensive Cross-Variant Exposure Tracking', { variables: { __dom_changes: [ - { - selector: '', - type: 'create', + buildCreateChange({ element: '
', - trigger_on_view: true, - } as any, + targetSelector: undefined, + }), { selector: '.text-target', type: 'text', @@ -4410,16 +4373,7 @@ describe('DOMChangesPluginLite - Comprehensive Cross-Variant Exposure Tracking', { variables: { __dom_changes: [] } }, { variables: { - __dom_changes: [ - { - selector: '', - type: 'create', - element: '
', - targetSelector: '.late-container', - position: 'lastChild', - trigger_on_view: true, - }, - ], + __dom_changes: [buildCreateChange({ targetSelector: '.late-container' })], }, }, ], @@ -4470,16 +4424,7 @@ describe('DOMChangesPluginLite - Comprehensive Cross-Variant Exposure Tracking', variables: { __dom_changes: { urlFilter: { include: ['/products'] }, - changes: [ - { - selector: '', - type: 'create', - element: '
', - targetSelector: '.container', - position: 'lastChild', - trigger_on_view: true, - }, - ], + changes: [buildCreateChange()], }, }, },