diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 77885b15..7fe77af5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -58,6 +58,28 @@ jobs: npm run Experiment_Manager_test env: CI: true + Control_Panel-test: + # The type of runner that the job will run on + runs-on: ubuntu-20.04 + container: lironavon/docker-puppeteer-container:14.16.0 + env: + CI: true + steps: + - uses: actions/checkout@v1 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + cache-dependency-path: frontend/e2e/tests/package-lock.json + - name: Control Panel test using Tut#2 + run: | + cd tests/frontend/e2e + #install dependencies + npm ci + # run Control Panel test + npm run Control_Panel_test + env: + CI: true Tutorial_1-SmokeTest: # The type of runner that the job will run on runs-on: ubuntu-20.04 diff --git a/tests/frontend/e2e/package.json b/tests/frontend/e2e/package.json index 48be38c3..e357607b 100644 --- a/tests/frontend/e2e/package.json +++ b/tests/frontend/e2e/package.json @@ -13,6 +13,7 @@ "Tutorial_3B_test":"jest --verbose Tut#3b_smoke ", "Tutorial_3C_test":"jest --verbose Tut#3c_smoke ", "Tutorial_4_test":"jest --verbose Tut#4_smoke ", + "Control_Panel_test": "jest --verbose ControlPanel ", "lint": "eslint --fix --ext .js,.jsx ." }, "dependencies": { diff --git a/tests/frontend/e2e/tests/ControlPanel.test.js b/tests/frontend/e2e/tests/ControlPanel.test.js new file mode 100644 index 00000000..d0b4d081 --- /dev/null +++ b/tests/frontend/e2e/tests/ControlPanel.test.js @@ -0,0 +1,313 @@ +//IMPORTS: +import 'expect-puppeteer'; +import { click } from './utils'; +import { toMatchImageSnapshot } from 'jest-image-snapshot' +expect.extend({ toMatchImageSnapshot }) +const path = require('path'); +var scriptName = path.basename(__filename, '.js'); +import * as selectors from './selectors' + + +//PAGE INFO: +const baseURL = process.env.url || 'https://stage.netpyne.metacell.us/' +const PAGE_WAIT = 3000; +const TIMEOUT = 60000; + +//SNAPSHOT: +const SNAPSHOT_OPTIONS = { + customSnapshotsDir: `./tests/snapshots/Tut#2_smoke.test/`, + comparisonMethod: 'ssim', + failureThresholdType: 'percent', + failureThreshold: 0.25 +}; + +let r = (Math.random() + 1).toString(36).substring(2); + +//USERS: +const USERNAME = `TestUser${r}` +const PASSWORD = 'testpassword' + +//TESTS: + +jest.setTimeout(300000); + + + +describe('Test for the Control Panel - color picker', () => { + + beforeAll(async () => { + await page.goto(baseURL); + await page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR); + await page.waitForSelector(selectors.USERNAME_SELECTOR) + await expect(page) + .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT }); + + await page.waitForSelector(selectors.PASSWORD_SELECTOR) + await expect(page) + .toFill(selectors.PASSWORD_SELECTOR, PASSWORD, { timeout: TIMEOUT }); + + await page.click(selectors.LOGIN_BUTTON_SELECTOR) + + await page.waitForFunction(() => { + let el = document.querySelector('#loading-spinner'); + return el == null || el.clientHeight === 0; + }, { timeout: TIMEOUT }); + }); + + it('Open new page', async () => { + + console.log('Opening a new NetPyNE page') + + await page.on("dialog", dialog => + dialog.accept()); + + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true }) + await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 }) + await page.waitForTimeout(PAGE_WAIT) + await page.click(selectors.FILE_TAB_SELECTOR) + await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 }) + await page.waitForTimeout(PAGE_WAIT) + await page.click(selectors.NEW_FILE_SELECTOR) + await page.waitForTimeout(PAGE_WAIT) + await page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR) + await page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR) + await page.waitForTimeout(PAGE_WAIT * 2) + + await page.waitForFunction(() => { + let el = document.querySelector('#loading-spinner'); + return el == null || el.clientHeight === 0; + }, { timeout: TIMEOUT }); + + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 }) + + console.log('Page opened successfully') + + }) + + it('Load Tutorial#2', async () => { + + await page.waitForTimeout(PAGE_WAIT * 2) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT }) + await page.waitForTimeout(PAGE_WAIT) + await page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) + + console.log('Loading Tutorial #2') + + await page.click(selectors.TUTORIAL_2_SELECTOR, { timeout: TIMEOUT }) + await page.waitForTimeout(PAGE_WAIT) + await page.waitForSelector(selectors.PYR_2_CELL_SELECTOR) + await page.waitForSelector(selectors.INT_CELL_SELECTOR) + await page.waitForTimeout(PAGE_WAIT) + + console.log('Tutorial #2 loaded successfully') + + }) + + + it('Create network', async () => { + + await page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR) + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR) + await page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + + console.log('Create network') + + await page.waitForSelector(selectors.DISABLED_RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 }) + + console.log('Network created successfully') + + await page.waitForTimeout(PAGE_WAIT) + + console.log('... taking snapshot ...'); + await page.waitForTimeout(PAGE_WAIT); + expect(await page.screenshot()) + .toMatchImageSnapshot({ + ...SNAPSHOT_OPTIONS, + customSnapshotIdentifier: 'Tutorial#2 Network' + }); + }) + + it('Open Color Picker Menu', async () => { + + console.log('Opening Control Panel') + + await page.waitForSelector(selectors.CONTROL_PANEL_TAB_SELECTOR) + await page.click(selectors.CONTROL_PANEL_TAB_SELECTOR) + await page.waitForSelector(selectors.NETWORKS_IN_CONTROL_PANEL_SELECTOR) + + const network_items = (await page.$$(selectors.NETWORK_ITEMS_CONTROL_PANEL_SELECTOR)).length; + await expect(network_items).toEqual(3) + + console.log('Control Panel displayed successfully') + + }) + + it('Randomize Main Level network color', async () => { + + console.log('Randomize Main Level network color') + + await page.waitForTimeout(PAGE_WAIT * 3) + await page.waitForSelector(selectors.CONTROL_PANEL_TABLE_SELECTOR) + + const primary_level_colors = await page.$$eval(selectors.COLOR_RECT_SELECTOR, primary_level_colors => { + return primary_level_colors.map(primary_level_color => primary_level_color.outerHTML); + }); + + expect(primary_level_colors[0]).toContain('fill="#FF7F99"') + expect(primary_level_colors[0]).toEqual(primary_level_colors[1]) + expect(primary_level_colors[1]).toEqual(primary_level_colors[2]) + + await page.waitForTimeout(PAGE_WAIT) + + const rows = await page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR) + for (var i = 0; i < rows.length; i++) { + await rows[0].hover() + } + + const buttons = await page.$$(selectors.COLOR_CONTROL_BUTTONS_SELECTOR) + + for (var i = 0; i < buttons.length; i++) { + await buttons[1].click() + } + + await page.waitForTimeout(PAGE_WAIT) + + const rndm_primary_level_colors = await page.$$eval(selectors.COLOR_RECT_SELECTOR, rndm_primary_level_colors => { + return rndm_primary_level_colors.map(rndm_primary_level_color => rndm_primary_level_color.outerHTML); + }); + + expect(rndm_primary_level_colors[0]).toContain('fill="#989898"') + expect(rndm_primary_level_colors[2]).not.toEqual(rndm_primary_level_colors[1]) + + console.log('Main Network color randomized successfully') + + await page.waitForTimeout(PAGE_WAIT) + + }) + + it('Randomize Sub level E network color', async () => { + + console.log('Randomize Sub Level E network color') + + const rows = await page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR) + for (var i = 0; i < rows.length; i++) { + await rows[1].click() + await rows[1].hover() + } + await page.waitForTimeout(PAGE_WAIT) + + const second_level_colors = await page.$$eval(selectors.COLOR_RECT_SELECTOR, second_level_colors => { + return second_level_colors.map(second_level_color => second_level_color.outerHTML); + }); + + + expect(second_level_colors[1]).toEqual(second_level_colors[2]) + expect(second_level_colors[2]).toEqual(second_level_colors[3]) + + + const buttons = await page.$$(selectors.COLOR_CONTROL_BUTTONS_SELECTOR) + + for (var i = 0; i < buttons.length; i++) { + await buttons[2].click() + } + + await page.waitForTimeout(PAGE_WAIT * 2) + + const second_level_colors_after_rndm = await page.$$eval(selectors.COLOR_RECT_SELECTOR, second_level_colors_after_rndm => { + return second_level_colors_after_rndm.map(second_level_color_after_rndm => second_level_color_after_rndm.outerHTML); + }); + + expect(second_level_colors_after_rndm[1]).toContain('fill="#989898"') + expect(second_level_colors_after_rndm[2]).not.toEqual(second_level_colors_after_rndm[3]) + expect(second_level_colors_after_rndm[2]).not.toEqual(second_level_colors_after_rndm[1]) + + console.log('E Network color randomized successfully') + + await page.waitForTimeout(PAGE_WAIT * 3) + + }) + + + it('Pick a color for the sublevel I netowrk', async () => { + + console.log('Selecting a color for the I network') + + const rows = await page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR) + for (var i = 0; i < rows.length; i++) { + await rows[1].click() + } + + await page.waitForTimeout(PAGE_WAIT) + + const rows_ = await page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR) + + for (var i = 0; i < rows_.length; i++) { + await rows_[2].click() + } + + await page.waitForTimeout(PAGE_WAIT) + + const network_colors = await page.$$eval(selectors.COLOR_RECT_SELECTOR, network_colors => { + return network_colors.map(network_color => network_color.outerHTML); + }); + + expect(network_colors[3]).toEqual(network_colors[4]) + expect(network_colors[3]).toEqual(network_colors[2]) + + await page.waitForTimeout(PAGE_WAIT * 3) + + const buttons = await page.$$(selectors.COLOR_CONTROL_BUTTONS_SELECTOR) + + for (var i = 0; i < buttons.length; i++) { + await buttons[4].click() + } + + await page.waitForTimeout(PAGE_WAIT) + + const list_bounds = await page.$(selectors.NETWORKS_IN_CONTROL_PANEL_SELECTOR); + const rect = await page.evaluate((list_bounds) => { + const { top, left, bottom, right } = list_bounds.getBoundingClientRect(); + return { top, left, bottom, right }; + }, list_bounds); + + await page.waitForTimeout(PAGE_WAIT) + await page.mouse.click(Math.round(rect.right) - 40, Math.round(rect.bottom) + 40) + await page.waitForTimeout(PAGE_WAIT * 2) + + const rows_after_colouring_I = await page.$$(selectors.CONTROL_PANEL_NETWORK_ROWS_SELECTOR) + for (var i = 0; i < rows_after_colouring_I.length; i++) { + await rows_after_colouring_I[2].click() + } + + const network_colors_after_colouring_I = await page.$$eval(selectors.COLOR_RECT_SELECTOR, network_colors_after_colouring_I => { + return network_colors_after_colouring_I.map(network_color_after_colouring_I => network_color_after_colouring_I.outerHTML); + }); + await page.waitForTimeout(PAGE_WAIT) + + expect(network_colors_after_colouring_I[2]).toEqual(network_colors_after_colouring_I[3]) + expect(network_colors_after_colouring_I[2]).toEqual(network_colors_after_colouring_I[4]) + + console.log('I network color selected successfully') + + }) + + it('Filter results from the Control panel', async () => { + + await page.waitForTimeout(PAGE_WAIT) + console.log('Filtering results') + + await expect(page).toFill(selectors.CONTROL_PANEL_FILTER_SELECTOR, 'E') + + await page.waitForTimeout(PAGE_WAIT) + await page.waitForSelector(selectors.NETWORKS_IN_CONTROL_PANEL_SELECTOR) + + const network_items = (await page.$$(selectors.NETWORK_ITEMS_CONTROL_PANEL_SELECTOR)).length; + await expect(network_items).toEqual(3) + + console.log('Results filtered successfully') + + }) + + +}); \ No newline at end of file diff --git a/tests/frontend/e2e/tests/EEG_and_Dipole_Tut#1.test.js b/tests/frontend/e2e/tests/EEG_and_Dipole_Tut#1.test.js index 0f98e8a3..f206accb 100644 --- a/tests/frontend/e2e/tests/EEG_and_Dipole_Tut#1.test.js +++ b/tests/frontend/e2e/tests/EEG_and_Dipole_Tut#1.test.js @@ -26,9 +26,11 @@ const SNAPSHOT_OPTIONS = { +let r = (Math.random() + 1).toString(36).substring(2); + //USERS: -const USERNAME = 'EEGDipole_TestUser_' -const PASSWORD = 'password' +const USERNAME = `TestUser${r}` +const PASSWORD = 'testpassword' //TESTS: @@ -65,15 +67,16 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => { await page.on("dialog", dialog => dialog.accept()); - await page.waitForSelector('#File', { timeout: PAGE_WAIT * 20 }) - await page.waitForTimeout(PAGE_WAIT * 6) - await page.click('#File') - await page.waitForSelector('#New', { timeout: PAGE_WAIT * 10 }) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true }) + await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 }) + await page.waitForTimeout(PAGE_WAIT) + await page.click(selectors.FILE_TAB_SELECTOR) + await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 }) await page.waitForTimeout(PAGE_WAIT) - await page.click('#New') + await page.click(selectors.NEW_FILE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) - await page.waitForSelector('#appBarPerformActionButton') - await page.click('#appBarPerformActionButton') + await page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR) + await page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR) await page.waitForTimeout(PAGE_WAIT * 2) await page.waitForFunction(() => { @@ -81,9 +84,10 @@ describe('EEG and Dipole Plot Test using Tutorial#1', () => { return el == null || el.clientHeight === 0; }, { timeout: TIMEOUT }); - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 }) + console.log('Page opened successfully') + }) diff --git a/tests/frontend/e2e/tests/ExperimentManager_Tut#1.test.js b/tests/frontend/e2e/tests/ExperimentManager_Tut#1.test.js index da986b5d..4c37eb44 100644 --- a/tests/frontend/e2e/tests/ExperimentManager_Tut#1.test.js +++ b/tests/frontend/e2e/tests/ExperimentManager_Tut#1.test.js @@ -25,9 +25,10 @@ const SNAPSHOT_OPTIONS = { }; +let r = (Math.random() + 1).toString(36).substring(2); //USERS: -const USERNAME = 'Test_User_Experiment_Manager_' +const USERNAME = `TestUser${r}` const PASSWORD = 'testpassword' @@ -65,15 +66,16 @@ describe('Experiment Manager test using Tut#1', () => { await page.on("dialog", dialog => dialog.accept()); - await page.waitForSelector('#File', { timeout: PAGE_WAIT * 20 }) - await page.waitForTimeout(PAGE_WAIT * 6) - await page.click('#File') - await page.waitForSelector('#New', { timeout: PAGE_WAIT * 10 }) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true }) + await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 }) await page.waitForTimeout(PAGE_WAIT) - await page.click('#New') + await page.click(selectors.FILE_TAB_SELECTOR) + await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 }) await page.waitForTimeout(PAGE_WAIT) - await page.waitForSelector('#appBarPerformActionButton') - await page.click('#appBarPerformActionButton') + await page.click(selectors.NEW_FILE_SELECTOR) + await page.waitForTimeout(PAGE_WAIT) + await page.waitForSelector(selectors.CONFIRM_NEW_PAGE_SELECTOR) + await page.click(selectors.CONFIRM_NEW_PAGE_SELECTOR) await page.waitForTimeout(PAGE_WAIT * 2) await page.waitForFunction(() => { @@ -81,10 +83,10 @@ describe('Experiment Manager test using Tut#1', () => { return el == null || el.clientHeight === 0; }, { timeout: TIMEOUT }); - - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 }) + console.log('Page opened successfully') + }) it('Load Tutorial#1', async () => { diff --git a/tests/frontend/e2e/tests/Tut#1_smoke.test.js b/tests/frontend/e2e/tests/Tut#1_smoke.test.js index 53d1adb9..bca24976 100644 --- a/tests/frontend/e2e/tests/Tut#1_smoke.test.js +++ b/tests/frontend/e2e/tests/Tut#1_smoke.test.js @@ -16,18 +16,18 @@ const TIMEOUT = 60000; //SNAPSHOT: const SNAPSHOT_OPTIONS = { - customSnapshotsDir: `./tests/snapshots/${scriptName}`, + customSnapshotsDir: `./tests/snapshots/${scriptName}`, comparisonMethod: 'ssim', failureThresholdType: 'percent', failureThreshold: 0.5 }; +let r = (Math.random() + 1).toString(36).substring(2); //USERS: -const USERNAME = 'test_user_tut_1' -const PASSWORD = 'testpassword' - +const USERNAME = `TestUser${r}` +const PASSWORD = 'testpassword' //TESTS: @@ -42,7 +42,7 @@ describe('Tutorial #1 for Smoke Testing', () => { await page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR); await page.waitForSelector(selectors.USERNAME_SELECTOR) await expect(page) - .toFill(selectors.USERNAME_SELECTOR,USERNAME, { timeout: TIMEOUT }); + .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT }); await page.waitForSelector(selectors.PASSWORD_SELECTOR) await expect(page) @@ -61,12 +61,13 @@ describe('Tutorial #1 for Smoke Testing', () => { console.log('Opening a new NetPyNE page') await page.on("dialog", dialog => - dialog.accept()); + dialog.accept()); - await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 20 }) - await page.waitForTimeout(PAGE_WAIT * 7) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true }) + await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 }) + await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.FILE_TAB_SELECTOR) - await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 10 }) + await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 }) await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.NEW_FILE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) @@ -75,21 +76,21 @@ describe('Tutorial #1 for Smoke Testing', () => { await page.waitForTimeout(PAGE_WAIT * 2) await page.waitForFunction(() => { - let el = document.querySelector('#loading-spinner'); - return el == null || el.clientHeight === 0; + let el = document.querySelector('#loading-spinner'); + return el == null || el.clientHeight === 0; }, { timeout: TIMEOUT }); - - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 }) -}) + console.log('Page opened successfully') + + }) it('Create and Simulate network', async () => { await page.waitForTimeout(PAGE_WAIT * 2) - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT}) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT }) console.log('Tutorial #1') @@ -105,9 +106,9 @@ describe('Tutorial #1 for Smoke Testing', () => { await click(page, selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); await page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR) await click(page, selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); - + console.log('Create network') - + await page.waitForTimeout(PAGE_WAIT) console.log('... taking snapshot ...'); @@ -118,7 +119,7 @@ describe('Tutorial #1 for Smoke Testing', () => { customSnapshotIdentifier: 'Tutorial#1 Network' }); - await click(page,selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await click(page, selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); await click(page, selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); console.log('Simulate network') @@ -130,10 +131,10 @@ describe('Tutorial #1 for Smoke Testing', () => { it('Connections Plot', async () => { - + await page.waitForTimeout(PAGE_WAIT * 2); await click(page, selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Connections Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -147,9 +148,9 @@ describe('Tutorial #1 for Smoke Testing', () => { }); it('2D Net Plot', async () => { - + await click(page, selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View 2D Net Plot ...') await page.waitForTimeout(PAGE_WAIT * 2); @@ -162,9 +163,9 @@ describe('Tutorial #1 for Smoke Testing', () => { }); it('Cell Traces Plot', async () => { - + await click(page, selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Cell Traces Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -177,9 +178,9 @@ describe('Tutorial #1 for Smoke Testing', () => { }); it('Raster Plot', async () => { - + await click(page, selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Raster Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -192,9 +193,9 @@ describe('Tutorial #1 for Smoke Testing', () => { }); it('Spike Hist Plot', async () => { - + await click(page, selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Spike Hist Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -207,9 +208,9 @@ describe('Tutorial #1 for Smoke Testing', () => { }); it('Granger Plot', async () => { - + await click(page, selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Granger Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -222,19 +223,19 @@ describe('Tutorial #1 for Smoke Testing', () => { }); it('Rate Spectogram Plot', async () => { - + await click(page, selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); await click(page, selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); await click(page, selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Rate Spectogram Plot ...') await page.waitForTimeout(PAGE_WAIT); diff --git a/tests/frontend/e2e/tests/Tut#2_smoke.test.js b/tests/frontend/e2e/tests/Tut#2_smoke.test.js index c1f1a9f2..71c47c25 100644 --- a/tests/frontend/e2e/tests/Tut#2_smoke.test.js +++ b/tests/frontend/e2e/tests/Tut#2_smoke.test.js @@ -15,17 +15,17 @@ const TIMEOUT = 60000; //SNAPSHOT: const SNAPSHOT_OPTIONS = { - customSnapshotsDir: `./tests/snapshots/${scriptName}`, + customSnapshotsDir: `./tests/snapshots/${scriptName}`, comparisonMethod: 'ssim', failureThresholdType: 'percent', failureThreshold: 0.5 }; +let r = (Math.random() + 1).toString(36).substring(2); //USERS: -const USERNAME = 'test_user_Tut_2' -const PASSWORD = 'testpassword' - +const USERNAME = `TestUser${r}` +const PASSWORD = 'testpassword' //TESTS: @@ -40,7 +40,7 @@ describe('Tutorial #2 for Smoke Testing', () => { await page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR); await page.waitForSelector(selectors.USERNAME_SELECTOR) await expect(page) - .toFill(selectors.USERNAME_SELECTOR,USERNAME, { timeout: TIMEOUT }); + .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT }); await page.waitForSelector(selectors.PASSWORD_SELECTOR) await expect(page) @@ -59,12 +59,13 @@ describe('Tutorial #2 for Smoke Testing', () => { console.log('Opening a new NetPyNE page') await page.on("dialog", dialog => - dialog.accept()); + dialog.accept()); - await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 30 }) - await page.waitForTimeout(PAGE_WAIT * 7) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true }) + await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 }) + await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.FILE_TAB_SELECTOR) - await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 10 }) + await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 }) await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.NEW_FILE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) @@ -73,27 +74,27 @@ describe('Tutorial #2 for Smoke Testing', () => { await page.waitForTimeout(PAGE_WAIT * 2) await page.waitForFunction(() => { - let el = document.querySelector('#loading-spinner'); - return el == null || el.clientHeight === 0; + let el = document.querySelector('#loading-spinner'); + return el == null || el.clientHeight === 0; }, { timeout: TIMEOUT }); - - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 }) -}) + console.log('Page opened successfully') + + }) it('Create and Simulate network', async () => { await page.waitForTimeout(PAGE_WAIT * 2) - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT}) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT }) console.log('Tutorial #2') await page.waitForTimeout(PAGE_WAIT) - await page.click( selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) + await page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) await page.click(selectors.TUTORIAL_2_SELECTOR, { timeout: TIMEOUT }) await page.waitForSelector(selectors.PYR_2_CELL_SELECTOR) @@ -101,13 +102,13 @@ describe('Tutorial #2 for Smoke Testing', () => { await page.waitForTimeout(PAGE_WAIT) await page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR) - await page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); await page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR) - await page.click( selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); - + await page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + console.log('Create network') - - await page.waitForTimeout(PAGE_WAIT*3) + + await page.waitForTimeout(PAGE_WAIT * 3) await page.waitForSelector(selectors.THREE_D_REP_SELECTOR) @@ -119,23 +120,23 @@ describe('Tutorial #2 for Smoke Testing', () => { customSnapshotIdentifier: 'Tutorial#2 Network' }); - await page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); - await page.click( selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); console.log('Simulate network') await page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 }); - await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT*3}) + await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 }) }); it('Connections Plot', async () => { - + await page.waitForTimeout(PAGE_WAIT * 2); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Connections Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -149,9 +150,9 @@ describe('Tutorial #2 for Smoke Testing', () => { }); it('2D Net Plot', async () => { - - await page.click( selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View 2D Net Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -164,9 +165,9 @@ describe('Tutorial #2 for Smoke Testing', () => { }); it('Cell Traces Plot', async () => { - - await page.click( selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Cell Traces Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -179,9 +180,9 @@ describe('Tutorial #2 for Smoke Testing', () => { }); it('Raster Plot', async () => { - - await page.click( selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Raster Plot ...') await page.waitForTimeout(PAGE_WAIT * 3); @@ -194,9 +195,9 @@ describe('Tutorial #2 for Smoke Testing', () => { }); it('Spike Hist Plot', async () => { - - await page.click( selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Spike Hist Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -209,9 +210,9 @@ describe('Tutorial #2 for Smoke Testing', () => { }); it('Granger Plot', async () => { - - await page.click( selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Granger Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -224,19 +225,19 @@ describe('Tutorial #2 for Smoke Testing', () => { }); it('Rate Spectogram Plot', async () => { - - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Rate Spectogram Plot ...') await page.waitForTimeout(PAGE_WAIT); diff --git a/tests/frontend/e2e/tests/Tut#3a_smoke.test.js b/tests/frontend/e2e/tests/Tut#3a_smoke.test.js index 21787527..1b2aa6e0 100644 --- a/tests/frontend/e2e/tests/Tut#3a_smoke.test.js +++ b/tests/frontend/e2e/tests/Tut#3a_smoke.test.js @@ -15,16 +15,17 @@ const TIMEOUT = 60000; //SNAPSHOT: const SNAPSHOT_OPTIONS = { - customSnapshotsDir: `./tests/snapshots/${scriptName}`, + customSnapshotsDir: `./tests/snapshots/${scriptName}`, comparisonMethod: 'ssim', failureThresholdType: 'percent', failureThreshold: 0.5 }; +let r = (Math.random() + 1).toString(36).substring(2); //USERS: -const USERNAME = 'test_user_tut_3a' -const PASSWORD = 'testpassword' +const USERNAME = `TestUser${r}` +const PASSWORD = 'testpassword' //TESTS: @@ -40,7 +41,7 @@ describe('Tutorial #3a for Smoke Testing', () => { await page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR); await page.waitForSelector(selectors.USERNAME_SELECTOR) await expect(page) - .toFill(selectors.USERNAME_SELECTOR,USERNAME, { timeout: TIMEOUT }); + .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT }); await page.waitForSelector(selectors.PASSWORD_SELECTOR) await expect(page) @@ -59,12 +60,13 @@ describe('Tutorial #3a for Smoke Testing', () => { console.log('Opening a new NetPyNE page') await page.on("dialog", dialog => - dialog.accept()); + dialog.accept()); - await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 20 }) - await page.waitForTimeout(PAGE_WAIT * 7) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true }) + await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 }) + await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.FILE_TAB_SELECTOR) - await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 10 }) + await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 }) await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.NEW_FILE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) @@ -73,41 +75,41 @@ describe('Tutorial #3a for Smoke Testing', () => { await page.waitForTimeout(PAGE_WAIT * 2) await page.waitForFunction(() => { - let el = document.querySelector('#loading-spinner'); - return el == null || el.clientHeight === 0; + let el = document.querySelector('#loading-spinner'); + return el == null || el.clientHeight === 0; }, { timeout: TIMEOUT }); - - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 }) -}) + console.log('Page opened successfully') + + }) it('Create and Simulate network', async () => { await page.waitForTimeout(PAGE_WAIT * 2) - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT}) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT }) console.log('Tutorial #3a') await page.waitForTimeout(PAGE_WAIT) - await page.click( selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) + await page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) - await page.click( selectors.TUTORIAL_3A_SELECTOR, { timeout: TIMEOUT }) + await page.click(selectors.TUTORIAL_3A_SELECTOR, { timeout: TIMEOUT }) await page.waitForSelector(selectors.E_CELL_TYPE_SELECTOR) await page.waitForSelector(selectors.I_CELL_TYPE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) await page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR) - await page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); await page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR) - await page.click( selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); - + await page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + console.log('Create network') - - await page.waitForTimeout(PAGE_WAIT*3) + + await page.waitForTimeout(PAGE_WAIT * 3) await page.waitForSelector(selectors.THREE_D_REP_SELECTOR) @@ -119,25 +121,25 @@ describe('Tutorial #3a for Smoke Testing', () => { customSnapshotIdentifier: 'Tutorial#3a Network' }); - await page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); - await page.click( selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + - console.log('Simulate network') await page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 }); - await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT*10}) + await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 10 }) }); it('Connections Plot', async () => { - + await page.waitForTimeout(PAGE_WAIT * 2); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Connections Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -151,9 +153,9 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('2D Net Plot', async () => { - - await page.click( selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View 2D Net Plot ...') await page.waitForTimeout(PAGE_WAIT * 3); @@ -166,9 +168,9 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('Cell Traces Plot', async () => { - - await page.click( selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Cell Traces Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -181,9 +183,9 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('Raster Plot', async () => { - - await page.click( selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Raster Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -196,9 +198,9 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('Spike Hist Plot', async () => { - - await page.click( selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Spike Hist Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -211,9 +213,9 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('LFP Time Series Plot', async () => { - - await page.click( selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View LFP Time Series Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -226,9 +228,9 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('LFP PSD Plot', async () => { - - await page.click( selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View LFP PSD Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -241,9 +243,9 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('LFP Spectrogram Plot', async () => { - - await page.click( selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View LFP Spectrogram Plot ...') await page.waitForTimeout(PAGE_WAIT * 5); @@ -256,9 +258,9 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('Granger Plot', async () => { - - await page.click( selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Granger Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -271,9 +273,9 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('RxD concentration plot', async () => { - - await page.click( selectors.RXD_CONCENTRATION_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RXD_CONCENTRATION_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View RxD concentration plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -286,19 +288,19 @@ describe('Tutorial #3a for Smoke Testing', () => { }); it('Rate Spectogram Plot', async () => { - - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Rate Spectogram Plot ...') await page.waitForTimeout(PAGE_WAIT); diff --git a/tests/frontend/e2e/tests/Tut#3b_smoke.test.js b/tests/frontend/e2e/tests/Tut#3b_smoke.test.js index d3643e80..f9995e32 100644 --- a/tests/frontend/e2e/tests/Tut#3b_smoke.test.js +++ b/tests/frontend/e2e/tests/Tut#3b_smoke.test.js @@ -15,16 +15,18 @@ const TIMEOUT = 60000; //SNAPSHOT: const SNAPSHOT_OPTIONS = { - customSnapshotsDir: `./tests/snapshots/${scriptName}`, + customSnapshotsDir: `./tests/snapshots/${scriptName}`, comparisonMethod: 'ssim', failureThresholdType: 'percent', failureThreshold: 0.5 }; +let r = (Math.random() + 1).toString(36).substring(2); + //USERS: -const USERNAME = 'test_user_tut_3b' -const PASSWORD = 'testpassword' +const USERNAME = `TestUser${r}` +const PASSWORD = 'testpassword' //TESTS: @@ -40,7 +42,7 @@ describe('Tutorial #3b for Smoke Testing', () => { await page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR); await page.waitForSelector(selectors.USERNAME_SELECTOR) await expect(page) - .toFill(selectors.USERNAME_SELECTOR,USERNAME, { timeout: TIMEOUT }); + .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT }); await page.waitForSelector(selectors.PASSWORD_SELECTOR) await expect(page) @@ -59,12 +61,13 @@ describe('Tutorial #3b for Smoke Testing', () => { console.log('Opening a new NetPyNE page') await page.on("dialog", dialog => - dialog.accept()); + dialog.accept()); - await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 20 }) - await page.waitForTimeout(PAGE_WAIT * 7) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true }) + await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 }) + await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.FILE_TAB_SELECTOR) - await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 10 }) + await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 }) await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.NEW_FILE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) @@ -73,41 +76,41 @@ describe('Tutorial #3b for Smoke Testing', () => { await page.waitForTimeout(PAGE_WAIT * 2) await page.waitForFunction(() => { - let el = document.querySelector('#loading-spinner'); - return el == null || el.clientHeight === 0; + let el = document.querySelector('#loading-spinner'); + return el == null || el.clientHeight === 0; }, { timeout: TIMEOUT }); - - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 }) -}) + console.log('Page opened successfully') + + }) it('Create and Simulate network', async () => { await page.waitForTimeout(PAGE_WAIT * 2) - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT}) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT }) console.log('Tutorial #3b') await page.waitForTimeout(PAGE_WAIT) - await page.click( selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) + await page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) - await page.click( selectors.TUTORIAL_3B_SELECTOR, { timeout: TIMEOUT }) + await page.click(selectors.TUTORIAL_3B_SELECTOR, { timeout: TIMEOUT }) await page.waitForSelector(selectors.E_CELL_TYPE_SELECTOR) await page.waitForSelector(selectors.I_CELL_TYPE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) await page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR) - await page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); await page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR) - await page.click( selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); - + await page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + console.log('Create network') - - await page.waitForTimeout(PAGE_WAIT*3) + + await page.waitForTimeout(PAGE_WAIT * 3) await page.waitForSelector(selectors.THREE_D_REP_SELECTOR) @@ -118,24 +121,24 @@ describe('Tutorial #3b for Smoke Testing', () => { ...SNAPSHOT_OPTIONS, customSnapshotIdentifier: 'Tutorial#3b Network' }); - await page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); - await page.click( selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); console.log('Simulate network') await page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 }); - await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT*3}) + await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 }) }); it('Connections Plot', async () => { - + await page.waitForTimeout(PAGE_WAIT * 2); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Connections Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -149,9 +152,9 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('2D Net Plot', async () => { - - await page.click( selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View 2D Net Plot ...') await page.waitForTimeout(PAGE_WAIT * 3); @@ -164,9 +167,9 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('Cell Traces Plot', async () => { - - await page.click( selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Cell Traces Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -179,9 +182,9 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('Raster Plot', async () => { - - await page.click( selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Raster Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -194,9 +197,9 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('Spike Hist Plot', async () => { - - await page.click( selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Spike Hist Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -209,9 +212,9 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('LFP Time Series Plot', async () => { - - await page.click( selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View LFP Time Series Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -224,9 +227,9 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('LFP PSD Plot', async () => { - - await page.click( selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View LFP PSD Plot ...') await page.waitForTimeout(PAGE_WAIT * 2); @@ -239,9 +242,9 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('LFP Spectrogram Plot', async () => { - - await page.click( selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View LFP Spectrogram Plot ...') await page.waitForTimeout(PAGE_WAIT * 5); @@ -254,9 +257,9 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('Granger Plot', async () => { - - await page.click( selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Granger Plot ...') await page.waitForTimeout(PAGE_WAIT * 2); @@ -269,9 +272,9 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('RxD concentration plot', async () => { - - await page.click( selectors.RXD_CONCENTRATION_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RXD_CONCENTRATION_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View RxD concentration plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -284,19 +287,19 @@ describe('Tutorial #3b for Smoke Testing', () => { }); it('Rate Spectogram Plot', async () => { - - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Rate Spectogram Plot ...') await page.waitForTimeout(PAGE_WAIT); diff --git a/tests/frontend/e2e/tests/Tut#3c_smoke.test.js b/tests/frontend/e2e/tests/Tut#3c_smoke.test.js index 51f1935b..24270041 100644 --- a/tests/frontend/e2e/tests/Tut#3c_smoke.test.js +++ b/tests/frontend/e2e/tests/Tut#3c_smoke.test.js @@ -16,16 +16,18 @@ const TIMEOUT = 60000; //SNAPSHOT: const SNAPSHOT_OPTIONS = { - customSnapshotsDir: `./tests/snapshots/${scriptName}`, + customSnapshotsDir: `./tests/snapshots/${scriptName}`, comparisonMethod: 'ssim', failureThresholdType: 'percent', failureThreshold: 0.5 }; +let r = (Math.random() + 1).toString(36).substring(2); + //USERS: -const USERNAME = 'test_user_tut_3c' -const PASSWORD = 'testpassword' +const USERNAME = `TestUser${r}` +const PASSWORD = 'testpassword' //TESTS: @@ -41,7 +43,7 @@ describe('Tutorial #3c for Smoke Testing', () => { await page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR); await page.waitForSelector(selectors.USERNAME_SELECTOR) await expect(page) - .toFill(selectors.USERNAME_SELECTOR,USERNAME, { timeout: TIMEOUT }); + .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT }); await page.waitForSelector(selectors.PASSWORD_SELECTOR) await expect(page) @@ -60,12 +62,13 @@ describe('Tutorial #3c for Smoke Testing', () => { console.log('Opening a new NetPyNE page') await page.on("dialog", dialog => - dialog.accept()); + dialog.accept()); - await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 20 }) - await page.waitForTimeout(PAGE_WAIT * 7) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true }) + await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 }) + await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.FILE_TAB_SELECTOR) - await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 10 }) + await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 }) await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.NEW_FILE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) @@ -74,41 +77,41 @@ describe('Tutorial #3c for Smoke Testing', () => { await page.waitForTimeout(PAGE_WAIT * 2) await page.waitForFunction(() => { - let el = document.querySelector('#loading-spinner'); - return el == null || el.clientHeight === 0; + let el = document.querySelector('#loading-spinner'); + return el == null || el.clientHeight === 0; }, { timeout: TIMEOUT }); - - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 }) -}) + console.log('Page opened successfully') + + }) it('Create and Simulate network', async () => { await page.waitForTimeout(PAGE_WAIT * 2) - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT}) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT }) console.log('Tutorial #3c') await page.waitForTimeout(PAGE_WAIT) - await page.click( selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) + await page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) - await page.click( selectors.TUTORIAL_3C_SELECTOR, { timeout: TIMEOUT }) + await page.click(selectors.TUTORIAL_3C_SELECTOR, { timeout: TIMEOUT }) await page.waitForSelector(selectors.E_CELL_TYPE_SELECTOR) await page.waitForSelector(selectors.I_CELL_TYPE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) await page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR) - await page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); await page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR) - await page.click( selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); - + await page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + console.log('Create network') - - await page.waitForTimeout(PAGE_WAIT*3) + + await page.waitForTimeout(PAGE_WAIT * 3) await page.waitForSelector(selectors.THREE_D_REP_SELECTOR) @@ -124,23 +127,23 @@ describe('Tutorial #3c for Smoke Testing', () => { // await page.click( MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); await page.waitForTimeout(PAGE_WAIT); //reason why the tests are using the simulate button on the top right - await page.click( selectors.SIMULATE_TOP_RIGHT_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.SIMULATE_TOP_RIGHT_BUTTON_SELECTOR, { timeout: TIMEOUT }); // await page.click( SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); console.log('Simulate network') await page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 }); - await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT*3}) + await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 }) }); it('Connections Plot', async () => { - + await page.waitForTimeout(PAGE_WAIT * 2); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Connections Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -154,9 +157,9 @@ describe('Tutorial #3c for Smoke Testing', () => { }); it('2D Net Plot', async () => { - - await page.click( selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View 2D Net Plot ...') await page.waitForTimeout(PAGE_WAIT * 3); @@ -169,9 +172,9 @@ describe('Tutorial #3c for Smoke Testing', () => { }); it('Cell Traces Plot', async () => { - - await page.click( selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Cell Traces Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -184,9 +187,9 @@ describe('Tutorial #3c for Smoke Testing', () => { }); it('Raster Plot', async () => { - - await page.click( selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Raster Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -199,9 +202,9 @@ describe('Tutorial #3c for Smoke Testing', () => { }); it('Spike Hist Plot', async () => { - - await page.click( selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Spike Hist Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -214,9 +217,9 @@ describe('Tutorial #3c for Smoke Testing', () => { }); it('LFP Time Series Plot', async () => { - - await page.click( selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.LFP_TS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View LFP Time Series Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -229,9 +232,9 @@ describe('Tutorial #3c for Smoke Testing', () => { }); it('LFP PSD Plot', async () => { - - await page.click( selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.LFP_PSD_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View LFP PSD Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -244,9 +247,9 @@ describe('Tutorial #3c for Smoke Testing', () => { }); it('LFP Spectrogram Plot', async () => { - - await page.click( selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.LFP_SPECTOGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View LFP Spectrogram Plot ...') await page.waitForTimeout(PAGE_WAIT * 3); @@ -259,9 +262,9 @@ describe('Tutorial #3c for Smoke Testing', () => { }); it('Granger Plot', async () => { - - await page.click( selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.GRANGER_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Granger Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -275,19 +278,19 @@ describe('Tutorial #3c for Smoke Testing', () => { it('Rate Spectogram Plot', async () => { - - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Rate Spectogram Plot ...') await page.waitForTimeout(PAGE_WAIT); diff --git a/tests/frontend/e2e/tests/Tut#4_smoke.test.js b/tests/frontend/e2e/tests/Tut#4_smoke.test.js index 43142523..a42ba4fd 100644 --- a/tests/frontend/e2e/tests/Tut#4_smoke.test.js +++ b/tests/frontend/e2e/tests/Tut#4_smoke.test.js @@ -15,16 +15,18 @@ const TIMEOUT = 60000; //SNAPSHOT: const SNAPSHOT_OPTIONS = { - customSnapshotsDir: `./tests/snapshots/${scriptName}`, + customSnapshotsDir: `./tests/snapshots/${scriptName}`, comparisonMethod: 'ssim', failureThresholdType: 'percent', failureThreshold: 0.5 }; +let r = (Math.random() + 1).toString(36).substring(2); + //USERS: -const USERNAME = 'test_user_tut_4' -const PASSWORD = 'testpassword' +const USERNAME = `TestUser${r}` +const PASSWORD = 'testpassword' //TESTS: @@ -40,7 +42,7 @@ describe('Tutorial #4 for Smoke Testing', () => { await page.waitForSelector(selectors.LOGIN_PAGE_SELECTOR); await page.waitForSelector(selectors.USERNAME_SELECTOR) await expect(page) - .toFill(selectors.USERNAME_SELECTOR,USERNAME, { timeout: TIMEOUT }); + .toFill(selectors.USERNAME_SELECTOR, USERNAME, { timeout: TIMEOUT }); await page.waitForSelector(selectors.PASSWORD_SELECTOR) await expect(page) @@ -59,12 +61,13 @@ describe('Tutorial #4 for Smoke Testing', () => { console.log('Opening a new NetPyNE page') await page.on("dialog", dialog => - dialog.accept()); + dialog.accept()); - await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 20 }) - await page.waitForTimeout(PAGE_WAIT * 7) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 6, visible: true }) + await page.waitForSelector(selectors.FILE_TAB_SELECTOR, { timeout: PAGE_WAIT * 3 }) + await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.FILE_TAB_SELECTOR) - await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 10 }) + await page.waitForSelector(selectors.NEW_FILE_SELECTOR, { timeout: PAGE_WAIT * 3 }) await page.waitForTimeout(PAGE_WAIT) await page.click(selectors.NEW_FILE_SELECTOR) await page.waitForTimeout(PAGE_WAIT) @@ -73,40 +76,40 @@ describe('Tutorial #4 for Smoke Testing', () => { await page.waitForTimeout(PAGE_WAIT * 2) await page.waitForFunction(() => { - let el = document.querySelector('#loading-spinner'); - return el == null || el.clientHeight === 0; + let el = document.querySelector('#loading-spinner'); + return el == null || el.clientHeight === 0; }, { timeout: TIMEOUT }); - - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT * 10 }) -}) + console.log('Page opened successfully') + + }) it('Create and Simulate network', async () => { await page.waitForTimeout(PAGE_WAIT * 2) - await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT}) + await page.waitForSelector(selectors.SELECT_CELL_BUTTON_SELECTOR, { timeout: TIMEOUT }) console.log('Tutorial #4') await page.waitForTimeout(PAGE_WAIT) - await page.click( selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) + await page.click(selectors.TUTORIALS_BUTTON_SELECTOR, { timeout: TIMEOUT }) await page.click(selectors.TUTORIAL_4_SELECTOR, { timeout: TIMEOUT }) await page.waitForSelector(selectors.PYR_2_CELL_SELECTOR) await page.waitForTimeout(PAGE_WAIT) await page.waitForSelector(selectors.MODEL_BUTTON_SELECTOR) - await page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); await page.waitForSelector(selectors.CREATE_NETWORK_SELECTOR) - await page.click( selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); - + await page.click(selectors.CREATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + console.log('Create network') - - await page.waitForTimeout(PAGE_WAIT*3) + + await page.waitForTimeout(PAGE_WAIT * 3) await page.waitForSelector(selectors.THREE_D_REP_SELECTOR) @@ -118,24 +121,24 @@ describe('Tutorial #4 for Smoke Testing', () => { customSnapshotIdentifier: 'Tutorial#4 Network' }); - await page.click( selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); - await page.click( selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); - + await page.click(selectors.MODEL_BUTTON_SELECTOR, { timeout: TIMEOUT }); + await page.click(selectors.SIMULATE_NETWORK_SELECTOR, { timeout: TIMEOUT }); + console.log('Simulate network') await page.waitForSelector(selectors.SIMULATION_PAGE_SELECTOR, { timeout: TIMEOUT * 2 }); - await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT*3}) + await page.waitForSelector(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT * 3 }) }); it('Connections Plot', async () => { - + await page.waitForTimeout(PAGE_WAIT * 2); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Connections Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -149,9 +152,9 @@ describe('Tutorial #4 for Smoke Testing', () => { }); it('2D Net Plot', async () => { - - await page.click( selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.TWO_D_NET_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View 2D Net Plot ...') await page.waitForTimeout(PAGE_WAIT * 3); @@ -164,9 +167,9 @@ describe('Tutorial #4 for Smoke Testing', () => { }); it('Cell Traces Plot', async () => { - - await page.click( selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.CELL_TRACES_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Cell Traces Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -179,9 +182,9 @@ describe('Tutorial #4 for Smoke Testing', () => { }); it('Raster Plot', async () => { - - await page.click( selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RASTER_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Raster Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -194,9 +197,9 @@ describe('Tutorial #4 for Smoke Testing', () => { }); it('Spike Hist Plot', async () => { - - await page.click( selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.SPIKE_HIST_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Spike Hist Plot ...') await page.waitForTimeout(PAGE_WAIT); @@ -210,19 +213,19 @@ describe('Tutorial #4 for Smoke Testing', () => { it('Rate Spectogram Plot', async () => { - - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.CONNECTIONS_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) await page.waitForTimeout(PAGE_WAIT); - await page.click( selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) - await page.waitForSelector(selectors.CANVAS_SELECTOR,{ timeout: TIMEOUT }) + await page.click(selectors.RATE_SPECTROGRAM_PLOT_SELECTOR, { timeout: TIMEOUT }) + await page.waitForSelector(selectors.CANVAS_SELECTOR, { timeout: TIMEOUT }) console.log('View Rate Spectogram Plot ...') await page.waitForTimeout(PAGE_WAIT); diff --git a/tests/frontend/e2e/tests/selectors.js b/tests/frontend/e2e/tests/selectors.js index c2b80a3f..e1cce5c7 100644 --- a/tests/frontend/e2e/tests/selectors.js +++ b/tests/frontend/e2e/tests/selectors.js @@ -69,4 +69,12 @@ export const EDIT_EXPERIMENT_BACK_SELECTOR = '.editExperimentBack > svg' export const INDIVIDUAL_EXPERIMENT_ROW_SELECTOR = 'tr[class="MuiTableRow-root"]' export const FILE_TAB_SELECTOR = '#File' export const NEW_FILE_SELECTOR = '#New' -export const CONFIRM_NEW_PAGE_SELECTOR = '#appBarPerformActionButton' \ No newline at end of file +export const CONFIRM_NEW_PAGE_SELECTOR = '#appBarPerformActionButton' +export const CONTROL_PANEL_TAB_SELECTOR = 'div[title="Control Panel"]' +export const NETWORKS_IN_CONTROL_PANEL_SELECTOR = 'ul[role="tree"]' +export const NETWORK_ITEMS_CONTROL_PANEL_SELECTOR = 'li[role="treeitem"]' +export const COLOR_CONTROL_BUTTONS_SELECTOR = 'button[class="MuiButtonBase-root MuiIconButton-root"]' +export const COLOR_RECT_SELECTOR = 'rect[rx="5"]' +export const CONTROL_PANEL_NETWORK_ROWS_SELECTOR = 'div[class = "MuiTypography-root MuiTreeItem-label MuiTypography-body1"]' +export const CONTROL_PANEL_TABLE_SELECTOR = 'div[class="MuiGrid-root MuiGrid-container MuiGrid-justify-content-xs-space-between"]' +export const CONTROL_PANEL_FILTER_SELECTOR = 'input[class="MuiInputBase-input MuiOutlinedInput-input"]' \ No newline at end of file