1
1
//IMPORTS:
2
2
import 'expect-puppeteer' ;
3
+ import puppeteer from 'puppeteer' ;
3
4
import { click } from './utils' ;
4
5
import { toMatchImageSnapshot } from 'jest-image-snapshot'
5
6
expect . extend ( { toMatchImageSnapshot } )
@@ -36,55 +37,76 @@ const PASSWORD = 'testpassword'
36
37
//TESTS:
37
38
38
39
jest . setTimeout ( 300000 ) ;
40
+ let browser_EEG_Dipole ;
41
+ let EEG_Dipole_page ;
39
42
40
43
beforeAll ( 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
- } ) ;
58
44
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
+ } ) ;
59
77
78
+ afterAll ( async ( ) => {
79
+ // Close the browser instance after all tests have run
80
+ await browser_EEG_Dipole . close ( ) ;
81
+ } ) ;
60
82
61
83
describe ( 'EEG and Dipole Plot Test using Tutorial#1' , ( ) => {
62
84
63
85
it ( 'Open new page' , async ( ) => {
64
86
65
87
console . log ( 'Opening a new NetPyNE page' )
66
88
67
- await page . on ( "dialog" , dialog =>
89
+ await EEG_Dipole_page . on ( "dialog" , dialog =>
68
90
dialog . accept ( ) ) ;
69
91
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 ( ( ) => {
83
105
let el = document . querySelector ( '#loading-spinner' ) ;
84
106
return el == null || el . clientHeight === 0 ;
85
107
} , { timeout : TIMEOUT } ) ;
86
108
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 } )
88
110
89
111
console . log ( 'Page opened successfully' )
90
112
@@ -93,15 +115,15 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
93
115
94
116
it ( 'Load Tutorial#1' , async ( ) => {
95
117
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 } )
100
122
101
123
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 )
105
127
106
128
107
129
} )
@@ -110,40 +132,40 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
110
132
111
133
await console . log ( 'Setting Recording configuration' )
112
134
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 )
115
137
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 )
119
141
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 )
123
145
// 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 )
127
149
128
150
} )
129
151
130
152
it ( 'Create network' , async ( ) => {
131
153
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 } ) ;
136
158
137
159
await console . log ( 'Create network' )
138
160
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 } )
141
163
142
- await page . waitForTimeout ( PAGE_WAIT )
164
+ await EEG_Dipole_page . waitForTimeout ( PAGE_WAIT )
143
165
144
166
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 ( ) )
147
169
. toMatchImageSnapshot ( {
148
170
...SNAPSHOT_OPTIONS ,
149
171
customSnapshotIdentifier : 'Tutorial#1 Network'
@@ -152,35 +174,35 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
152
174
153
175
it ( 'Simulate network' , async ( ) => {
154
176
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 } ) ;
157
179
158
180
await console . log ( 'Simulate network' )
159
181
160
- await page . waitForSelector ( selectors . SIMULATION_PAGE_SELECTOR , { timeout : TIMEOUT * 2 } ) ;
182
+ await EEG_Dipole_page . waitForSelector ( selectors . SIMULATION_PAGE_SELECTOR , { timeout : TIMEOUT * 2 } ) ;
161
183
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 } )
165
187
} ) ;
166
188
167
189
it ( 'Dipole Plot' , async ( ) => {
168
190
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 } )
172
194
173
195
await console . log ( 'View Dipole Plot ...' )
174
196
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 ) ;
181
203
182
204
await console . log ( '... taking snapshot ...' ) ;
183
- expect ( await page . screenshot ( ) )
205
+ expect ( await EEG_Dipole_page . screenshot ( ) )
184
206
. toMatchImageSnapshot ( {
185
207
...SNAPSHOT_OPTIONS ,
186
208
customSnapshotIdentifier : 'Dipole Plot'
@@ -190,21 +212,21 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => {
190
212
191
213
it ( 'EEG Plot' , async ( ) => {
192
214
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 } )
196
218
197
219
await console . log ( 'View EEG Plot ...' )
198
220
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 ) ;
205
227
206
228
await console . log ( '... taking snapshot ...' ) ;
207
- expect ( await page . screenshot ( ) )
229
+ expect ( await EEG_Dipole_page . screenshot ( ) )
208
230
. toMatchImageSnapshot ( {
209
231
...SNAPSHOT_OPTIONS ,
210
232
customSnapshotIdentifier : 'EEG Plot'
0 commit comments