11//IMPORTS:
22import 'expect-puppeteer' ;
3+ import puppeteer from 'puppeteer' ;
34import { click } from './utils' ;
45import { toMatchImageSnapshot } from 'jest-image-snapshot'
56expect . extend ( { toMatchImageSnapshot } )
@@ -36,55 +37,76 @@ 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 ) ;
42- await page . waitForSelector ( selectors . LOGIN_PAGE_SELECTOR ) ;
43- await page . waitForSelector ( selectors . USERNAME_SELECTOR )
44- await expect ( page )
45- . toFill ( selectors . USERNAME_SELECTOR , USERNAME , { timeout : TIMEOUT } ) ;
46-
47- await page . waitForSelector ( selectors . PASSWORD_SELECTOR )
48- await expect ( page )
49- . toFill ( selectors . PASSWORD_SELECTOR , PASSWORD , { timeout : TIMEOUT } ) ;
50-
51- await page . click ( selectors . LOGIN_BUTTON_SELECTOR )
52- // Wait for initial loading spinner to disappear
53- await page . waitForFunction ( ( ) => {
54- let el = document . querySelector ( '#loading-spinner' ) ;
55- return el == null || el . clientHeight === 0 ;
56- } , { timeout : TIMEOUT } ) ;
57- } ) ;
5844
45+ browser_EEG_Dipole = await puppeteer . launch (
46+ {
47+ headless : 'new' ,
48+ args : [ '--no-sandbox' , '--disable-setuid-sandbox' ] ,
49+ defaultViewport : {
50+ width : 1300 ,
51+ height : 1024
52+ } ,
53+ }
54+ ) ;
55+ EEG_Dipole_page = await browser_EEG_Dipole . newPage ( ) ;
56+ await EEG_Dipole_page . goto ( baseURL ) ;
57+ if ( baseURL . includes ( 'test.netpyne.metacell.us' ) ) {
58+ console . log ( 'Logging in as test user ...' )
59+ await EEG_Dipole_page . waitForSelector ( selectors . LOGIN_PAGE_SELECTOR ) ;
60+ await EEG_Dipole_page . waitForSelector ( selectors . USERNAME_SELECTOR )
61+ await expect ( EEG_Dipole_page )
62+ . toFill ( selectors . USERNAME_SELECTOR , USERNAME , { timeout : TIMEOUT } ) ;
63+
64+ await EEG_Dipole_page . waitForSelector ( selectors . PASSWORD_SELECTOR )
65+ await expect ( EEG_Dipole_page )
66+ . toFill ( selectors . PASSWORD_SELECTOR , PASSWORD , { timeout : TIMEOUT } ) ;
67+
68+ await EEG_Dipole_page . click ( selectors . LOGIN_BUTTON_SELECTOR )
69+ // Wait for initial loading spinner to disappear
70+ await EEG_Dipole_page . waitForFunction ( ( ) => {
71+ let el = document . querySelector ( '#loading-spinner' ) ;
72+ return el == null || el . clientHeight === 0 ;
73+ } , { timeout : TIMEOUT } ) ;
74+ console . log ( 'Logged in successfully' )
75+ }
76+ } ) ;
5977
78+ afterAll ( async ( ) => {
79+ // Close the browser instance after all tests have run
80+ await browser_EEG_Dipole . close ( ) ;
81+ } ) ;
6082
6183describe ( 'EEG and Dipole Plot Test using Tutorial#1' , ( ) => {
6284
6385 it ( 'Open new page' , async ( ) => {
6486
6587 console . log ( 'Opening a new NetPyNE page' )
6688
67- await page . on ( "dialog" , dialog =>
89+ await EEG_Dipole_page . on ( "dialog" , dialog =>
6890 dialog . accept ( ) ) ;
6991
70- await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 6 , visible : true } )
71- await page . waitForSelector ( selectors . FILE_TAB_SELECTOR , { timeout : PAGE_WAIT * 3 } )
72- await page . waitForTimeout ( PAGE_WAIT )
73- await page . click ( selectors . FILE_TAB_SELECTOR )
74- await page . waitForSelector ( selectors . NEW_FILE_SELECTOR , { timeout : PAGE_WAIT * 3 } )
75- await page . waitForTimeout ( PAGE_WAIT )
76- await page . click ( selectors . NEW_FILE_SELECTOR )
77- await page . waitForTimeout ( PAGE_WAIT )
78- await page . waitForSelector ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
79- await page . click ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
80- await page . waitForTimeout ( PAGE_WAIT * 2 )
81-
82- await page . waitForFunction ( ( ) => {
92+ await EEG_Dipole_page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 6 , visible : true } )
93+ await EEG_Dipole_page . waitForSelector ( selectors . FILE_TAB_SELECTOR , { timeout : PAGE_WAIT * 3 } )
94+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
95+ await EEG_Dipole_page . click ( selectors . FILE_TAB_SELECTOR )
96+ await EEG_Dipole_page . waitForSelector ( selectors . NEW_FILE_SELECTOR , { timeout : PAGE_WAIT * 3 } )
97+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
98+ await EEG_Dipole_page . click ( selectors . NEW_FILE_SELECTOR )
99+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
100+ await EEG_Dipole_page . waitForSelector ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
101+ await EEG_Dipole_page . click ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
102+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 )
103+
104+ await EEG_Dipole_page . waitForFunction ( ( ) => {
83105 let el = document . querySelector ( '#loading-spinner' ) ;
84106 return el == null || el . clientHeight === 0 ;
85107 } , { timeout : TIMEOUT } ) ;
86108
87- await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 10 } )
109+ await EEG_Dipole_page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 10 } )
88110
89111 console . log ( 'Page opened successfully' )
90112
@@ -93,15 +115,15 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
93115
94116 it ( 'Load Tutorial#1' , async ( ) => {
95117
96- await page . waitForTimeout ( PAGE_WAIT * 3 )
97- await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 2 } )
98- await page . waitForTimeout ( PAGE_WAIT * 2 )
99- await page . click ( selectors . TUTORIALS_BUTTON_SELECTOR , { timeout : TIMEOUT } )
118+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 3 )
119+ await EEG_Dipole_page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 2 } )
120+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 )
121+ await EEG_Dipole_page . click ( selectors . TUTORIALS_BUTTON_SELECTOR , { timeout : TIMEOUT } )
100122
101123 await console . log ( 'Loading Tutorial #1' )
102- await page . click ( selectors . TUTORIAL_1_SELECTOR , { timeout : TIMEOUT } )
103- await page . waitForSelector ( selectors . PYR_CELL_SELECTOR )
104- await page . waitForTimeout ( PAGE_WAIT )
124+ await EEG_Dipole_page . click ( selectors . TUTORIAL_1_SELECTOR , { timeout : TIMEOUT } )
125+ await EEG_Dipole_page . waitForSelector ( selectors . PYR_CELL_SELECTOR )
126+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
105127
106128
107129 } )
@@ -110,40 +132,40 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
110132
111133 await console . log ( 'Setting Recording configuration' )
112134
113- await page . waitForSelector ( selectors . CONFIGURATION_TAB_SELECTOR )
114- await page . click ( selectors . CONFIGURATION_TAB_SELECTOR )
135+ await EEG_Dipole_page . waitForSelector ( selectors . CONFIGURATION_TAB_SELECTOR )
136+ await EEG_Dipole_page . click ( selectors . CONFIGURATION_TAB_SELECTOR )
115137
116- await page . waitForSelector ( selectors . RECORDING_CONFIGURATION_TAB_SELECTOR )
117- await page . click ( selectors . RECORDING_CONFIGURATION_TAB_SELECTOR )
118- await page . waitForTimeout ( PAGE_WAIT )
138+ await EEG_Dipole_page . waitForSelector ( selectors . RECORDING_CONFIGURATION_TAB_SELECTOR )
139+ await EEG_Dipole_page . click ( selectors . RECORDING_CONFIGURATION_TAB_SELECTOR )
140+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
119141
120- await page . waitForSelector ( selectors . TRACES_TO_RECORD_SELECTOR )
121- await page . waitForTimeout ( PAGE_WAIT )
122- await page . waitForSelector ( selectors . DIPOLE_LFPYKIT_SELECTOR )
142+ await EEG_Dipole_page . waitForSelector ( selectors . TRACES_TO_RECORD_SELECTOR )
143+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
144+ await EEG_Dipole_page . waitForSelector ( selectors . DIPOLE_LFPYKIT_SELECTOR )
123145 // await expect(page).toClick(selectors.DIPOLE_LFPYKIT_SELECTOR)
124- await page . waitForTimeout ( PAGE_WAIT )
125- await page . click ( selectors . DIPOLE_LFPYKIT_SELECTOR )
126- await page . waitForTimeout ( PAGE_WAIT )
146+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
147+ await EEG_Dipole_page . click ( selectors . DIPOLE_LFPYKIT_SELECTOR )
148+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
127149
128150 } )
129151
130152 it ( 'Create network' , async ( ) => {
131153
132- await page . waitForSelector ( selectors . MODEL_BUTTON_SELECTOR )
133- await page . click ( selectors . MODEL_BUTTON_SELECTOR , { timeout : TIMEOUT } ) ;
134- await page . waitForSelector ( selectors . CREATE_NETWORK_SELECTOR )
135- await page . click ( selectors . CREATE_NETWORK_SELECTOR , { timeout : TIMEOUT } ) ;
154+ await EEG_Dipole_page . waitForSelector ( selectors . MODEL_BUTTON_SELECTOR )
155+ await EEG_Dipole_page . click ( selectors . MODEL_BUTTON_SELECTOR , { timeout : TIMEOUT } ) ;
156+ await EEG_Dipole_page . waitForSelector ( selectors . CREATE_NETWORK_SELECTOR )
157+ await EEG_Dipole_page . click ( selectors . CREATE_NETWORK_SELECTOR , { timeout : TIMEOUT } ) ;
136158
137159 await console . log ( 'Create network' )
138160
139- await page . waitForSelector ( selectors . DISABLED_EEG_PLOT_SELECTOR , { timeout : TIMEOUT * 3 } )
140- await page . waitForSelector ( selectors . DISABLED_DIPOLE_PLOT_SELECTOR , { timeout : TIMEOUT * 3 } )
161+ await EEG_Dipole_page . waitForSelector ( selectors . DISABLED_EEG_PLOT_SELECTOR , { timeout : TIMEOUT * 3 } )
162+ await EEG_Dipole_page . waitForSelector ( selectors . DISABLED_DIPOLE_PLOT_SELECTOR , { timeout : TIMEOUT * 3 } )
141163
142- await page . waitForTimeout ( PAGE_WAIT )
164+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
143165
144166 await console . log ( '... taking snapshot ...' ) ;
145- await page . waitForTimeout ( PAGE_WAIT ) ;
146- expect ( await page . screenshot ( ) )
167+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT ) ;
168+ expect ( await EEG_Dipole_page . screenshot ( ) )
147169 . toMatchImageSnapshot ( {
148170 ...SNAPSHOT_OPTIONS ,
149171 customSnapshotIdentifier : 'Tutorial#1 Network'
@@ -152,35 +174,35 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
152174
153175 it ( 'Simulate network' , async ( ) => {
154176
155- await page . waitForSelector ( selectors . SIMULATE_BUTTON_SELECTOR )
156- await page . click ( selectors . SIMULATE_BUTTON_SELECTOR , { timeout : TIMEOUT } ) ;
177+ await EEG_Dipole_page . waitForSelector ( selectors . SIMULATE_BUTTON_SELECTOR )
178+ await EEG_Dipole_page . click ( selectors . SIMULATE_BUTTON_SELECTOR , { timeout : TIMEOUT } ) ;
157179
158180 await console . log ( 'Simulate network' )
159181
160- await page . waitForSelector ( selectors . SIMULATION_PAGE_SELECTOR , { timeout : TIMEOUT * 2 } ) ;
182+ await EEG_Dipole_page . waitForSelector ( selectors . SIMULATION_PAGE_SELECTOR , { timeout : TIMEOUT * 2 } ) ;
161183
162- await page . waitForSelector ( selectors . RASTER_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
163- await page . waitForSelector ( selectors . EEG_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
164- await page . waitForSelector ( selectors . DIPOLE_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
184+ await EEG_Dipole_page . waitForSelector ( selectors . RASTER_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
185+ await EEG_Dipole_page . waitForSelector ( selectors . EEG_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
186+ await EEG_Dipole_page . waitForSelector ( selectors . DIPOLE_PLOT_SELECTOR , { timeout : TIMEOUT * 5 } )
165187 } ) ;
166188
167189 it ( 'Dipole Plot' , async ( ) => {
168190
169- await page . waitForTimeout ( PAGE_WAIT * 2 ) ;
170- await page . click ( selectors . DIPOLE_PLOT_SELECTOR )
171- await page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
191+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 ) ;
192+ await EEG_Dipole_page . click ( selectors . DIPOLE_PLOT_SELECTOR )
193+ await EEG_Dipole_page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
172194
173195 await console . log ( 'View Dipole Plot ...' )
174196
175- await page . waitForTimeout ( PAGE_WAIT * 20 ) ;
176- await page . click ( selectors . CONNECTIONS_PLOT_SELECTOR , { timeout : TIMEOUT } )
177- await page . waitForTimeout ( PAGE_WAIT ) ;
178- await page . click ( selectors . DIPOLE_PLOT_SELECTOR )
179- await page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
180- await page . waitForTimeout ( PAGE_WAIT * 3 ) ;
197+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 20 ) ;
198+ await EEG_Dipole_page . click ( selectors . CONNECTIONS_PLOT_SELECTOR , { timeout : TIMEOUT } )
199+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT ) ;
200+ await EEG_Dipole_page . click ( selectors . DIPOLE_PLOT_SELECTOR )
201+ await EEG_Dipole_page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
202+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 3 ) ;
181203
182204 await console . log ( '... taking snapshot ...' ) ;
183- expect ( await page . screenshot ( ) )
205+ expect ( await EEG_Dipole_page . screenshot ( ) )
184206 . toMatchImageSnapshot ( {
185207 ...SNAPSHOT_OPTIONS ,
186208 customSnapshotIdentifier : 'Dipole Plot'
@@ -190,21 +212,21 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
190212
191213 it ( 'EEG Plot' , async ( ) => {
192214
193- await page . waitForTimeout ( PAGE_WAIT * 2 ) ;
194- await page . click ( selectors . EEG_PLOT_SELECTOR )
195- await page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
215+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 ) ;
216+ await EEG_Dipole_page . click ( selectors . EEG_PLOT_SELECTOR )
217+ await EEG_Dipole_page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
196218
197219 await console . log ( 'View EEG Plot ...' )
198220
199- await page . waitForTimeout ( PAGE_WAIT * 25 ) ;
200- await page . click ( selectors . CONNECTIONS_PLOT_SELECTOR , { timeout : TIMEOUT } )
201- await page . waitForTimeout ( PAGE_WAIT * 2 ) ;
202- await page . click ( selectors . EEG_PLOT_SELECTOR )
203- await page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
204- await page . waitForTimeout ( PAGE_WAIT * 3 ) ;
221+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 25 ) ;
222+ await EEG_Dipole_page . click ( selectors . CONNECTIONS_PLOT_SELECTOR , { timeout : TIMEOUT } )
223+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 2 ) ;
224+ await EEG_Dipole_page . click ( selectors . EEG_PLOT_SELECTOR )
225+ await EEG_Dipole_page . waitForSelector ( selectors . CANVAS_SELECTOR , { timeout : TIMEOUT } )
226+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT * 3 ) ;
205227
206228 await console . log ( '... taking snapshot ...' ) ;
207- expect ( await page . screenshot ( ) )
229+ expect ( await EEG_Dipole_page . screenshot ( ) )
208230 . toMatchImageSnapshot ( {
209231 ...SNAPSHOT_OPTIONS ,
210232 customSnapshotIdentifier : 'EEG Plot'
0 commit comments