@@ -18,24 +18,35 @@ export class MindElixirFixture {
1818 async goto ( ) {
1919 await this . page . goto ( 'http://localhost:23333/test.html' )
2020 }
21- async init ( data : MindElixirData ) {
22- const mind = await this . page . evaluate ( data => {
23- const MindElixir = window . MindElixir
24- const options : Options = {
25- el : '#map' ,
26- direction : MindElixir . SIDE ,
27- }
28- const mind = new MindElixir ( options )
29- mind . init ( JSON . parse ( JSON . stringify ( data ) ) )
30- window . m = mind
31- return mind
32- } , data )
33- this . m = mind
21+ async init ( data : MindElixirData , el = '#map' ) {
22+ // evaluate return Serializable value
23+ await this . page . evaluate (
24+ ( { data, el } ) => {
25+ const MindElixir = window . MindElixir
26+ const options : Options = {
27+ el,
28+ direction : MindElixir . SIDE ,
29+ }
30+ const mind = new MindElixir ( options )
31+ mind . init ( JSON . parse ( JSON . stringify ( data ) ) )
32+ window [ el ] = mind
33+ return mind
34+ } ,
35+ { data, el }
36+ )
3437 }
35- async getData ( ) {
36- return await this . page . evaluate ( ( ) => {
37- return window . m . getData ( )
38- } )
38+ async getInstance ( el = '#map' ) {
39+ const instanceHandle = await this . page . evaluateHandle ( el => Promise . resolve ( window [ el ] as MindElixirInstance ) , el )
40+ return instanceHandle
41+ }
42+ async getData ( el = '#map' ) {
43+ const data = await this . page . evaluate ( el => {
44+ return window [ el ] . getData ( )
45+ } , el )
46+ // console.log(a)
47+ // const dataHandle = await this.page.evaluateHandle(() => Promise.resolve(window.m.getData()))
48+ // const data = await dataHandle.jsonValue()
49+ return data
3950 }
4051 async dblclick ( topic : string ) {
4152 await this . page . getByText ( topic ) . dblclick ( {
0 commit comments