11//IMPORTS:
22import 'expect-puppeteer' ;
3+ import puppeteer from 'puppeteer' ;
34import { click } from './utils' ;
45import { toMatchImageSnapshot } from 'jest-image-snapshot'
56expect . extend ( { toMatchImageSnapshot } )
@@ -36,59 +37,75 @@ const PASSWORD = 'testpassword'
3637//TESTS:
3738
3839jest . setTimeout ( 300000 ) ;
40+ let browser_EEG_Dipole ;
41+ let EEG_Dipole_page ;
3942
4043beforeAll ( async ( ) => {
41- await page . goto ( baseURL ) ;
44+
45+ browser_EEG_Dipole = await puppeteer . launch (
46+ {
47+ headless : 'new' ,
48+ defaultViewport : {
49+ width : 1300 ,
50+ height : 1024
51+ } ,
52+ }
53+ ) ;
54+ EEG_Dipole_page = await browser_EEG_Dipole . newPage ( ) ;
55+ await EEG_Dipole_page . goto ( baseURL ) ;
4256 if ( baseURL . includes ( 'test.netpyne.metacell.us' ) ) {
4357 console . log ( 'Logging in as test user ...' )
44- await page . waitForSelector ( selectors . LOGIN_PAGE_SELECTOR ) ;
45- await page . waitForSelector ( selectors . USERNAME_SELECTOR )
46- await expect ( page )
58+ await EEG_Dipole_page . waitForSelector ( selectors . LOGIN_PAGE_SELECTOR ) ;
59+ await EEG_Dipole_page . waitForSelector ( selectors . USERNAME_SELECTOR )
60+ await expect ( EEG_Dipole_page )
4761 . toFill ( selectors . USERNAME_SELECTOR , USERNAME , { timeout : TIMEOUT } ) ;
4862
49- await page . waitForSelector ( selectors . PASSWORD_SELECTOR )
50- await expect ( page )
63+ await EEG_Dipole_page . waitForSelector ( selectors . PASSWORD_SELECTOR )
64+ await expect ( EEG_Dipole_page )
5165 . toFill ( selectors . PASSWORD_SELECTOR , PASSWORD , { timeout : TIMEOUT } ) ;
5266
53- await page . click ( selectors . LOGIN_BUTTON_SELECTOR )
67+ await EEG_Dipole_page . click ( selectors . LOGIN_BUTTON_SELECTOR )
5468 // Wait for initial loading spinner to disappear
55- await page . waitForFunction ( ( ) => {
69+ await EEG_Dipole_page . waitForFunction ( ( ) => {
5670 let el = document . querySelector ( '#loading-spinner' ) ;
5771 return el == null || el . clientHeight === 0 ;
5872 } , { timeout : TIMEOUT } ) ;
5973 console . log ( 'Logged in successfully' )
6074 }
6175} ) ;
6276
63-
77+ afterAll ( async ( ) => {
78+ // Close the browser instance after all tests have run
79+ await browser_EEG_Dipole . close ( ) ;
80+ } ) ;
6481
6582describe ( 'EEG and Dipole Plot Test using Tutorial#1' , ( ) => {
6683
6784 it ( 'Open new page' , async ( ) => {
6885
6986 console . log ( 'Opening a new NetPyNE page' )
7087
71- await page . on ( "dialog" , dialog =>
88+ await EEG_Dipole_page . on ( "dialog" , dialog =>
7289 dialog . accept ( ) ) ;
7390
74- await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 6 , visible : true } )
75- await page . waitForSelector ( selectors . FILE_TAB_SELECTOR , { timeout : PAGE_WAIT * 3 } )
76- await page . waitForTimeout ( PAGE_WAIT )
77- await page . click ( selectors . FILE_TAB_SELECTOR )
78- await page . waitForSelector ( selectors . NEW_FILE_SELECTOR , { timeout : PAGE_WAIT * 3 } )
79- await page . waitForTimeout ( PAGE_WAIT )
80- await page . click ( selectors . NEW_FILE_SELECTOR )
81- await page . waitForTimeout ( PAGE_WAIT )
82- await page . waitForSelector ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
83- await page . click ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
84- await page . waitForTimeout ( PAGE_WAIT * 2 )
85-
86- await page . waitForFunction ( ( ) => {
91+ await EEG_Dipole_page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 6 , visible : true } )
92+ await EEG_Dipole_page . waitForSelector ( selectors . FILE_TAB_SELECTOR , { timeout : PAGE_WAIT * 3 } )
93+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
94+ await EEG_Dipole_page . click ( selectors . FILE_TAB_SELECTOR )
95+ await EEG_Dipole_page . waitForSelector ( selectors . NEW_FILE_SELECTOR , { timeout : PAGE_WAIT * 3 } )
96+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
97+ await EEG_Dipole_page . click ( selectors . NEW_FILE_SELECTOR )
98+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
99+ await EEG_Dipole_page . waitForSelector ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
100+ await EEG_Dipole_page . click ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
101+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 )
102+
103+ await EEG_Dipole_page . waitForFunction ( ( ) => {
87104 let el = document . querySelector ( '#loading-spinner' ) ;
88105 return el == null || el . clientHeight === 0 ;
89106 } , { timeout : TIMEOUT } ) ;
90107
91- await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 10 } )
108+ await EEG_Dipole_page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 10 } )
92109
93110 console . log ( 'Page opened successfully' )
94111
@@ -97,15 +114,15 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
97114
98115 it ( 'Load Tutorial#1' , async ( ) => {
99116
100- await page . waitForTimeout ( PAGE_WAIT * 3 )
101- await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 2 } )
102- await page . waitForTimeout ( PAGE_WAIT * 2 )
103- await page . click ( selectors . TUTORIALS_BUTTON_SELECTOR , { timeout : TIMEOUT } )
117+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 3 )
118+ await EEG_Dipole_page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 2 } )
119+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 )
120+ await EEG_Dipole_page . click ( selectors . TUTORIALS_BUTTON_SELECTOR , { timeout : TIMEOUT } )
104121
105122 await console . log ( 'Loading Tutorial #1' )
106- await page . click ( selectors . TUTORIAL_1_SELECTOR , { timeout : TIMEOUT } )
107- await page . waitForSelector ( selectors . PYR_CELL_SELECTOR )
108- await page . waitForTimeout ( PAGE_WAIT )
123+ await EEG_Dipole_page . click ( selectors . TUTORIAL_1_SELECTOR , { timeout : TIMEOUT } )
124+ await EEG_Dipole_page . waitForSelector ( selectors . PYR_CELL_SELECTOR )
125+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
109126
110127
111128 } )
@@ -114,40 +131,40 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
114131
115132 await console . log ( 'Setting Recording configuration' )
116133
117- await page . waitForSelector ( selectors . CONFIGURATION_TAB_SELECTOR )
118- await page . click ( selectors . CONFIGURATION_TAB_SELECTOR )
134+ await EEG_Dipole_page . waitForSelector ( selectors . CONFIGURATION_TAB_SELECTOR )
135+ await EEG_Dipole_page . click ( selectors . CONFIGURATION_TAB_SELECTOR )
119136
120- await page . waitForSelector ( selectors . RECORDING_CONFIGURATION_TAB_SELECTOR )
121- await page . click ( selectors . RECORDING_CONFIGURATION_TAB_SELECTOR )
122- await page . waitForTimeout ( PAGE_WAIT )
137+ await EEG_Dipole_page . waitForSelector ( selectors . RECORDING_CONFIGURATION_TAB_SELECTOR )
138+ await EEG_Dipole_page . click ( selectors . RECORDING_CONFIGURATION_TAB_SELECTOR )
139+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
123140
124- await page . waitForSelector ( selectors . TRACES_TO_RECORD_SELECTOR )
125- await page . waitForTimeout ( PAGE_WAIT )
126- await page . waitForSelector ( selectors . DIPOLE_LFPYKIT_SELECTOR )
141+ await EEG_Dipole_page . waitForSelector ( selectors . TRACES_TO_RECORD_SELECTOR )
142+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
143+ await EEG_Dipole_page . waitForSelector ( selectors . DIPOLE_LFPYKIT_SELECTOR )
127144 // await expect(page).toClick(selectors.DIPOLE_LFPYKIT_SELECTOR)
128- await page . waitForTimeout ( PAGE_WAIT )
129- await page . click ( selectors . DIPOLE_LFPYKIT_SELECTOR )
130- await page . waitForTimeout ( PAGE_WAIT )
145+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
146+ await EEG_Dipole_page . click ( selectors . DIPOLE_LFPYKIT_SELECTOR )
147+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
131148
132149 } )
133150
134151 it ( 'Create network' , async ( ) => {
135152
136- await page . waitForSelector ( selectors . MODEL_BUTTON_SELECTOR )
137- await page . click ( selectors . MODEL_BUTTON_SELECTOR , { timeout : TIMEOUT } ) ;
138- await page . waitForSelector ( selectors . CREATE_NETWORK_SELECTOR )
139- await page . click ( selectors . CREATE_NETWORK_SELECTOR , { timeout : TIMEOUT } ) ;
153+ await EEG_Dipole_page . waitForSelector ( selectors . MODEL_BUTTON_SELECTOR )
154+ await EEG_Dipole_page . click ( selectors . MODEL_BUTTON_SELECTOR , { timeout : TIMEOUT } ) ;
155+ await EEG_Dipole_page . waitForSelector ( selectors . CREATE_NETWORK_SELECTOR )
156+ await EEG_Dipole_page . click ( selectors . CREATE_NETWORK_SELECTOR , { timeout : TIMEOUT } ) ;
140157
141158 await console . log ( 'Create network' )
142159
143- await page . waitForSelector ( selectors . DISABLED_EEG_PLOT_SELECTOR , { timeout : TIMEOUT * 3 } )
144- await page . waitForSelector ( selectors . DISABLED_DIPOLE_PLOT_SELECTOR , { timeout : TIMEOUT * 3 } )
160+ await EEG_Dipole_page . waitForSelector ( selectors . DISABLED_EEG_PLOT_SELECTOR , { timeout : TIMEOUT * 3 } )
161+ await EEG_Dipole_page . waitForSelector ( selectors . DISABLED_DIPOLE_PLOT_SELECTOR , { timeout : TIMEOUT * 3 } )
145162
146- await page . waitForTimeout ( PAGE_WAIT )
163+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
147164
148165 await console . log ( '... taking snapshot ...' ) ;
149- await page . waitForTimeout ( PAGE_WAIT ) ;
150- expect ( await page . screenshot ( ) )
166+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT ) ;
167+ expect ( await EEG_Dipole_page . screenshot ( ) )
151168 . toMatchImageSnapshot ( {
152169 ...SNAPSHOT_OPTIONS ,
153170 customSnapshotIdentifier : 'Tutorial#1 Network'
@@ -156,35 +173,35 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
156173
157174 it ( 'Simulate network' , async ( ) => {
158175
159- await page . waitForSelector ( selectors . SIMULATE_BUTTON_SELECTOR )
160- await page . click ( selectors . SIMULATE_BUTTON_SELECTOR , { timeout : TIMEOUT } ) ;
176+ await EEG_Dipole_page . waitForSelector ( selectors . SIMULATE_BUTTON_SELECTOR )
177+ await EEG_Dipole_page . click ( selectors . SIMULATE_BUTTON_SELECTOR , { timeout : TIMEOUT } ) ;
161178
162179 await console . log ( 'Simulate network' )
163180
164- await page . waitForSelector ( selectors . SIMULATION_PAGE_SELECTOR , { timeout : TIMEOUT * 2 } ) ;
181+ await EEG_Dipole_page . waitForSelector ( selectors . SIMULATION_PAGE_SELECTOR , { timeout : TIMEOUT * 2 } ) ;
165182
166- await page . waitForSelector ( selectors . RASTER_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
167- await page . waitForSelector ( selectors . EEG_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
168- await page . waitForSelector ( selectors . DIPOLE_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
183+ await EEG_Dipole_page . waitForSelector ( selectors . RASTER_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
184+ await EEG_Dipole_page . waitForSelector ( selectors . EEG_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
185+ await EEG_Dipole_page . waitForSelector ( selectors . DIPOLE_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
169186 } ) ;
170187
171188 it ( 'Dipole Plot' , async ( ) => {
172189
173- await page . waitForTimeout ( PAGE_WAIT * 2 ) ;
174- await page . click ( selectors . DIPOLE_PLOT_SELECTOR )
175- await page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
190+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 ) ;
191+ await EEG_Dipole_page . click ( selectors . DIPOLE_PLOT_SELECTOR )
192+ await EEG_Dipole_page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
176193
177194 await console . log ( 'View Dipole Plot ...' )
178195
179- await page . waitForTimeout ( PAGE_WAIT * 20 ) ;
180- await page . click ( selectors . CONNECTIONS_PLOT_SELECTOR , { timeout : TIMEOUT } )
181- await page . waitForTimeout ( PAGE_WAIT ) ;
182- await page . click ( selectors . DIPOLE_PLOT_SELECTOR )
183- await page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
184- await page . waitForTimeout ( PAGE_WAIT * 3 ) ;
196+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 20 ) ;
197+ await EEG_Dipole_page . click ( selectors . CONNECTIONS_PLOT_SELECTOR , { timeout : TIMEOUT } )
198+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT ) ;
199+ await EEG_Dipole_page . click ( selectors . DIPOLE_PLOT_SELECTOR )
200+ await EEG_Dipole_page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
201+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 3 ) ;
185202
186203 await console . log ( '... taking snapshot ...' ) ;
187- expect ( await page . screenshot ( ) )
204+ expect ( await EEG_Dipole_page . screenshot ( ) )
188205 . toMatchImageSnapshot ( {
189206 ...SNAPSHOT_OPTIONS ,
190207 customSnapshotIdentifier : 'Dipole Plot'
@@ -194,21 +211,21 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
194211
195212 it ( 'EEG Plot' , async ( ) => {
196213
197- await page . waitForTimeout ( PAGE_WAIT * 2 ) ;
198- await page . click ( selectors . EEG_PLOT_SELECTOR )
199- await page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
214+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 ) ;
215+ await EEG_Dipole_page . click ( selectors . EEG_PLOT_SELECTOR )
216+ await EEG_Dipole_page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
200217
201218 await console . log ( 'View EEG Plot ...' )
202219
203- await page . waitForTimeout ( PAGE_WAIT * 25 ) ;
204- await page . click ( selectors . CONNECTIONS_PLOT_SELECTOR , { timeout : TIMEOUT } )
205- await page . waitForTimeout ( PAGE_WAIT * 2 ) ;
206- await page . click ( selectors . EEG_PLOT_SELECTOR )
207- await page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
208- await page . waitForTimeout ( PAGE_WAIT * 3 ) ;
220+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 25 ) ;
221+ await EEG_Dipole_page . click ( selectors . CONNECTIONS_PLOT_SELECTOR , { timeout : TIMEOUT } )
222+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 ) ;
223+ await EEG_Dipole_page . click ( selectors . EEG_PLOT_SELECTOR )
224+ await EEG_Dipole_page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
225+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 3 ) ;
209226
210227 await console . log ( '... taking snapshot ...' ) ;
211- expect ( await page . screenshot ( ) )
228+ expect ( await EEG_Dipole_page . screenshot ( ) )
212229 . toMatchImageSnapshot ( {
213230 ...SNAPSHOT_OPTIONS ,
214231 customSnapshotIdentifier : 'EEG Plot'
0 commit comments