@@ -25,7 +25,6 @@ export class PlaywrightEngine extends TestEngineBase {
2525
2626 test ( `(es) ${ name } ` , async ( { page } ) => {
2727 await page . goto ( '/modern.html' , { waitUntil : 'load' } ) ;
28- await new Promise ( ( resolve ) => setTimeout ( resolve , 100 ) ) ; // wait for the page to load completely
2928 await this . executeEvaluation ( { page, assert, serializedEvaluateParams } ) ;
3029 } ) ;
3130
@@ -49,7 +48,40 @@ export class PlaywrightEngine extends TestEngineBase {
4948 } ) {
5049 const { page, assert, serializedEvaluateParams } = options ;
5150 const resultStr = await page . evaluate ( ( contextStr ) => {
52- throw new Error ( document . documentElement . outerHTML ) ;
51+ const EnumPlus = window . EnumPlus ;
52+ const WeekConfig = window . WeekConfig ;
53+ const WeekData = window . WeekData ;
54+ const SerializeJavascript = window . SerializeJavascript ;
55+
56+ // Deserialize request
57+ const runtimeContext = {
58+ EnumPlus,
59+ WeekConfig,
60+ WeekData,
61+ SerializeJavascript,
62+ } ;
63+ // console.log('window', runtimeContext);
64+ const { stringify : serialize , parse : deserialize } = SerializeJavascript ;
65+ const args = deserialize ( contextStr ) as { evaluateFn : ( context : RuntimeContext ) => Data } ;
66+ const { evaluateFn, ...rest } = args ;
67+
68+ // Set the initial state to en-US before executing evaluation
69+ WeekConfig . setLang ( 'en-US' , EnumPlus . Enum , WeekConfig . getLocales , EnumPlus . defaultLocalize ) ;
70+
71+ // Execute the evaluation
72+ const evaluateResult = evaluateFn ( { ...runtimeContext , ...rest } ) ;
73+ // console.log('evaluateResult');
74+ // console.log(evaluateResult);
75+
76+ // Serialize the evaluation result and pass it to assertion method
77+ const serializedStr = serialize ( {
78+ EnumLocalize : EnumPlus . Enum . localize ,
79+ lang : WeekConfig . lang ,
80+ ...evaluateResult ,
81+ } ) ;
82+ // console.log('serialize result');
83+ // console.log(serializeResult);
84+ return serializedStr ;
5385 } , serializedEvaluateParams ) ;
5486
5587 const initialState = parse ( resultStr , { /* debug: true, */ prettyPrint : false } ) ;
0 commit comments