File tree Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Expand file tree Collapse file tree 2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change 11import { getCookie , isUndefined } from '@guardian/libs' ;
2+ import { getForcedParticipationsFromUrlFlat } from '../lib/getAbUrlHash' ;
23
34const AB_COOKIE_NAME = 'gu_client_ab_tests' ;
45
@@ -37,6 +38,7 @@ const getABTestParticipations = (): ABParticipations => {
3738 return {
3839 ...getClientParticipations ( ) ,
3940 ...window . guardian . config . serverSideABTests ,
41+ ...getForcedParticipationsFromUrlFlat ( window . location . hash ) ,
4042 } ;
4143} ;
4244
Original file line number Diff line number Diff line change @@ -21,3 +21,25 @@ export const getForcedParticipationsFromUrl = (
2121
2222 return { } ;
2323} ;
24+
25+ export const getForcedParticipationsFromUrlFlat = (
26+ windowHash : string ,
27+ ) : Record < string , string > => {
28+ if ( windowHash . startsWith ( '#ab' ) ) {
29+ const tokens = windowHash . replace ( '#ab-' , '' ) . split ( ',' ) ;
30+ return tokens . reduce < Record < string , string > > ( ( obj , token ) => {
31+ const [ testId , variantId ] = token . split ( '=' ) ;
32+
33+ if ( testId && variantId ) {
34+ return {
35+ ...obj ,
36+ [ testId ] : variantId ,
37+ } ;
38+ }
39+
40+ return obj ;
41+ } , { } ) ;
42+ }
43+
44+ return { } ;
45+ } ;
You can’t perform that action at this time.
0 commit comments