11import type { Browser } from '@playwright/test' ;
22import { expect } from '@playwright/test' ;
3- import { excludeGen2 , isSSRFramework , test } from '../helpers/index.js' ;
3+ import { isSSRFramework , test } from '../helpers/index.js' ;
44import { launchEmbedderAndWaitForSdk } from '../helpers/visual-editor.js' ;
5+ import type { Sdk } from '../helpers/sdk.js' ;
6+
57const SELECTOR = 'div[builder-content-id]' ;
8+ const SDKS_SUPPORTING_PERSONALIZATION = [ 'react' , 'vue' , 'svelte' ] as Sdk [ ] ;
69
710const createContextWithCookies = async ( {
811 cookies,
@@ -36,18 +39,9 @@ const initializeUserAttributes = async (
3639 page : _page ,
3740 baseURL,
3841 browser,
39- packageName,
40- sdk,
41- } : Pick <
42- Parameters < Parameters < typeof test > [ 2 ] > [ 0 ] ,
43- 'page' | 'baseURL' | 'browser' | 'packageName' | 'sdk'
44- > ,
42+ } : Pick < Parameters < Parameters < typeof test > [ 2 ] > [ 0 ] , 'page' | 'baseURL' | 'browser' > ,
4543 { userAttributes } : { userAttributes : Record < string , string > }
4644) => {
47- // gen1-remix started failing on this test for an unknown reason.
48- test . skip ( packageName === 'gen1-remix' ) ;
49- test . skip ( excludeGen2 ( sdk ) && sdk !== 'react' ) ;
50-
5145 if ( ! baseURL ) throw new Error ( 'Missing baseURL' ) ;
5246
5347 const context = await createContextWithCookies ( {
@@ -62,6 +56,11 @@ const initializeUserAttributes = async (
6256} ;
6357
6458test . describe ( 'Personalization Container' , ( ) => {
59+ test . beforeEach ( ( { sdk, packageName } ) => {
60+ test . skip ( ! SDKS_SUPPORTING_PERSONALIZATION . includes ( sdk ) ) ;
61+ test . skip ( packageName === 'gen1-remix' ) ;
62+ } ) ;
63+
6564 test . describe ( 'entire page' , ( ) => {
6665 const TEXTS = {
6766 DEFAULT_CONTENT : 'Default' ,
@@ -73,20 +72,12 @@ test.describe('Personalization Container', () => {
7372
7473 // Manually run tests 10 times to ensure we don't have any flakiness.
7574 for ( let i = 1 ; i <= TRIES ; i ++ ) {
76- test ( `#${ i } /${ TRIES } : Render default w/ SSR` , async ( {
77- page : _page ,
78- baseURL,
79- browser,
80- packageName,
81- sdk,
82- } ) => {
75+ test ( `#${ i } /${ TRIES } : Render default w/ SSR` , async ( { page : _page , baseURL, browser } ) => {
8376 const { page } = await initializeUserAttributes (
8477 {
8578 page : _page ,
8679 baseURL,
8780 browser,
88- sdk,
89- packageName,
9081 } ,
9182 // empty should render default, non-personalized content
9283 {
@@ -102,20 +93,12 @@ test.describe('Personalization Container', () => {
10293 await expect ( page . locator ( SELECTOR , { hasText : TEXTS . EXPERIMENT_B } ) ) . toBeHidden ( ) ;
10394 } ) ;
10495
105- test ( `#${ i } /${ TRIES } : Render variant A w/ SSR` , async ( {
106- page : _page ,
107- baseURL,
108- browser,
109- sdk,
110- packageName,
111- } ) => {
96+ test ( `#${ i } /${ TRIES } : Render variant A w/ SSR` , async ( { page : _page , baseURL, browser } ) => {
11297 const { page } = await initializeUserAttributes (
11398 {
11499 page : _page ,
115100 baseURL,
116101 browser,
117- sdk,
118- packageName,
119102 } ,
120103 // empty should render default, non-personalized content
121104 {
@@ -131,20 +114,12 @@ test.describe('Personalization Container', () => {
131114 await expect ( page . locator ( SELECTOR , { hasText : TEXTS . DEFAULT_CONTENT } ) ) . toBeHidden ( ) ;
132115 } ) ;
133116
134- test ( `#${ i } /${ TRIES } : Render variant B w/ SSR` , async ( {
135- page : _page ,
136- baseURL,
137- browser,
138- sdk,
139- packageName,
140- } ) => {
117+ test ( `#${ i } /${ TRIES } : Render variant B w/ SSR` , async ( { page : _page , baseURL, browser } ) => {
141118 const { page } = await initializeUserAttributes (
142119 {
143120 page : _page ,
144121 baseURL,
145122 browser,
146- sdk,
147- packageName,
148123 } ,
149124 // empty should render default, non-personalized content
150125 {
@@ -167,7 +142,9 @@ test.describe('Personalization Container', () => {
167142 packageName,
168143 } ) => {
169144 // here we are checking specifically for winning variant content by setting the user attributes
170- test . skip ( ! [ 'react-sdk-next-15-app' , 'gen1-next15-app' ] . includes ( packageName ) ) ;
145+ test . skip (
146+ ! [ 'react-sdk-next-15-app' , 'gen1-next15-app' , 'nuxt' , 'sveltekit' ] . includes ( packageName )
147+ ) ;
171148 await page . goto ( '/variant-containers' ) ;
172149
173150 // content 1
@@ -179,12 +156,8 @@ test.describe('Personalization Container', () => {
179156 await expect ( page . getByText ( 'Tablet content 2' ) ) . toBeVisible ( ) ;
180157 } ) ;
181158
182- test ( 'only default variants are ssred on the server' , async ( { browser, packageName, sdk } ) => {
159+ test ( 'only default variants are ssred on the server' , async ( { browser, packageName } ) => {
183160 test . skip ( ! isSSRFramework ( packageName ) ) ;
184- test . skip ( ! [ 'react' , 'oldReact' ] . includes ( sdk ) ) ;
185- // Cannot read properties of null (reading 'useContext')
186- test . skip ( packageName === 'gen1-remix' ) ;
187-
188161 const context = await browser . newContext ( {
189162 javaScriptEnabled : false ,
190163 } ) ;
@@ -197,11 +170,7 @@ test.describe('Personalization Container', () => {
197170 await expect ( page . getByText ( 'Default content 2' ) ) . toBeVisible ( ) ;
198171 } ) ;
199172
200- test ( 'root style attribute is correctly set' , async ( { page, sdk, packageName } ) => {
201- test . skip ( ! [ 'react' , 'oldReact' ] . includes ( sdk ) ) ;
202- // Cannot read properties of null (reading 'useContext')
203- test . skip ( packageName === 'gen1-remix' ) ;
204-
173+ test ( 'root style attribute is correctly set' , async ( { page } ) => {
205174 await page . goto ( '/variant-containers' ) ;
206175
207176 const secondPersonalizationContainer = page
@@ -215,12 +184,7 @@ test.describe('Personalization Container', () => {
215184 page,
216185 sdk,
217186 basePort,
218- packageName,
219187 } ) => {
220- test . skip ( ! [ 'react' , 'oldReact' ] . includes ( sdk ) ) ;
221- // Cannot read properties of null (reading 'useContext')
222- test . skip ( packageName === 'gen1-remix' ) ;
223-
224188 const paths = [
225189 '/variant-containers-with-previewing-index-0' ,
226190 '/variant-containers-with-previewing-index-1' ,
0 commit comments