Skip to content

Commit dceddff

Browse files
browser and page instances for each test
1 parent a6f3b8d commit dceddff

17 files changed

Lines changed: 1337 additions & 1150 deletions

tests/frontend/e2e/jest-puppeteer.config.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

tests/frontend/e2e/jest.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module.exports = {
22
verbose: true,
3-
preset: "jest-puppeteer",
3+
// preset: "jest-puppeteer",
44
testRegex : "(tests/Test.*|(\\.|/)(test|spec))\\.[jt]sx?$",
55
setupFilesAfterEnv: ['./tests/setupTests.js'],
66
};

tests/frontend/e2e/package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@
44
"description": "NetPyNe UI tests",
55
"license": "unlicensed",
66
"scripts": {
7-
"test": "jest --verbose Tut#1_smoke && jest --verbose Tut#2_smoke && jest --verbose Tut#3a_smoke && jest --verbose Tut#3b_smoke && jest --verbose Tut#4_smoke && jest --verbose ControlPanel && jest --verbose SaveOpenFile && jest --verbose RxD && jest --verbose EEG_and_Dipole_Tut#1 && jest --verbose ExperimentManager_Tut#1",
8-
"puppeteer_test" : "jest --verbose",
7+
"test": "jest --verbose Tut#1_smoke Tut#2_smoke Tut#3a_smoke Tut#3b_smoke Tut#3c_smoke Tut#4_smoke ControlPanel SaveOpenFile RxD EEG_and_Dipole_Tut#1 ExperimentManager_Tut#1",
8+
"puppeteer_test": "jest --verbose",
99
"EEG_Dipole_test": "jest --verbose EEG_and_Dipole_Tut#1 ",
1010
"Experiment_Manager_test": "jest --verbose ExperimentManager_Tut#1 ",
11-
"Tutorial_1_test":"jest --verbose Tut#1_smoke ",
12-
"Tutorial_2_test":"jest --verbose Tut#2_smoke ",
13-
"Tutorial_3A_test":"jest --verbose Tut#3a_smoke ",
14-
"Tutorial_3B_test":"jest --verbose Tut#3b_smoke ",
15-
"Tutorial_3C_test":"jest --verbose Tut#3c_smoke ",
16-
"Tutorial_4_test":"jest --verbose Tut#4_smoke ",
11+
"Tutorial_1_test": "jest --verbose Tut#1_smoke ",
12+
"Tutorial_2_test": "jest --verbose Tut#2_smoke ",
13+
"Tutorial_3A_test": "jest --verbose Tut#3a_smoke ",
14+
"Tutorial_3B_test": "jest --verbose Tut#3b_smoke ",
15+
"Tutorial_3C_test": "jest --verbose Tut#3c_smoke ",
16+
"Tutorial_4_test": "jest --verbose Tut#4_smoke ",
1717
"Control_Panel_test": "jest --verbose ControlPanel ",
1818
"Save_Open_File_test": "jest --verbose SaveOpenFile",
1919
"RxD_test": "jest --verbose RxD",
@@ -51,4 +51,4 @@
5151
]
5252
}
5353
}
54-
}
54+
}

tests/frontend/e2e/tests/ControlPanel.test.js

Lines changed: 100 additions & 83 deletions
Large diffs are not rendered by default.

tests/frontend/e2e/tests/EEG_and_Dipole_Tut#1.test.js

Lines changed: 94 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
//IMPORTS:
22
import 'expect-puppeteer';
3+
import puppeteer from 'puppeteer';
34
import { click } from './utils';
45
import { toMatchImageSnapshot } from 'jest-image-snapshot'
56
expect.extend({ toMatchImageSnapshot })
@@ -36,59 +37,75 @@ const PASSWORD = 'testpassword'
3637
//TESTS:
3738

3839
jest.setTimeout(300000);
40+
let browser_EEG_Dipole;
41+
let EEG_Dipole_page;
3942

4043
beforeAll(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

6582
describe('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

Comments
 (0)