1+ //IMPORTS:
2+ import 'expect-puppeteer' ;
3+ import { click } from './utils' ;
4+ import { toMatchImageSnapshot } from 'jest-image-snapshot'
5+ expect . extend ( { toMatchImageSnapshot } )
6+ const path = require ( 'path' ) ;
7+ var scriptName = path . basename ( __filename , '.js' ) ;
8+ import * as selectors from './selectors'
9+
10+
11+ //PAGE INFO:
12+ const baseURL = process . env . url || 'https://stage.netpyne.metacell.us/'
13+ const PAGE_WAIT = 3000 ;
14+ const TIMEOUT = 60000 ;
15+
16+ //SNAPSHOT:
17+ const SNAPSHOT_OPTIONS = {
18+ customSnapshotsDir : `./tests/snapshots/${ scriptName } ` ,
19+ comparisonMethod : 'ssim' ,
20+ customDiffConfig : {
21+ ssim : 'fast' ,
22+ } ,
23+ failureThresholdType : 'percent' ,
24+ failureThreshold : 0.2
25+ } ;
26+
27+
28+ let r = ( Math . random ( ) + 1 ) . toString ( 36 ) . substring ( 2 ) ;
29+
30+ //USERS:
31+ const USERNAME = `TestUser${ r } `
32+ const PASSWORD = 'testpassword'
33+
34+
35+ //TESTS:
36+
37+ jest . setTimeout ( 300000 ) ;
38+
39+ describe ( 'Save / Open File testing' , ( ) => {
40+
41+ beforeAll ( async ( ) => {
42+ await page . goto ( baseURL ) ;
43+ await page . waitForSelector ( selectors . LOGIN_PAGE_SELECTOR ) ;
44+ await page . waitForSelector ( selectors . USERNAME_SELECTOR )
45+ await expect ( page )
46+ . toFill ( selectors . USERNAME_SELECTOR , USERNAME , { timeout : TIMEOUT } ) ;
47+
48+ await page . waitForSelector ( selectors . PASSWORD_SELECTOR )
49+ await expect ( page )
50+ . toFill ( selectors . PASSWORD_SELECTOR , PASSWORD , { timeout : TIMEOUT } ) ;
51+
52+ await page . click ( selectors . LOGIN_BUTTON_SELECTOR )
53+
54+ await page . waitForFunction ( ( ) => {
55+ let el = document . querySelector ( '#loading-spinner' ) ;
56+ return el == null || el . clientHeight === 0 ;
57+ } , { timeout : TIMEOUT } ) ;
58+ } ) ;
59+
60+ it ( 'Open new page' , async ( ) => {
61+
62+ console . log ( 'Opening a new NetPyNE page' )
63+
64+ await page . on ( "dialog" , dialog =>
65+ dialog . accept ( ) ) ;
66+
67+ await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 6 , visible : true } )
68+ await page . waitForSelector ( selectors . FILE_TAB_SELECTOR , { timeout : PAGE_WAIT * 3 } )
69+ await page . waitForTimeout ( PAGE_WAIT )
70+ await page . click ( selectors . FILE_TAB_SELECTOR )
71+ await page . waitForSelector ( selectors . NEW_FILE_SELECTOR , { timeout : PAGE_WAIT * 3 } )
72+ await page . waitForTimeout ( PAGE_WAIT )
73+ await page . click ( selectors . NEW_FILE_SELECTOR )
74+ await page . waitForTimeout ( PAGE_WAIT )
75+ await page . waitForSelector ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
76+ await page . click ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
77+ await page . waitForTimeout ( PAGE_WAIT * 3 )
78+
79+ await page . waitForFunction ( ( ) => {
80+ let el = document . querySelector ( '#loading-spinner' ) ;
81+ return el == null || el . clientHeight === 0 ;
82+ } , { timeout : TIMEOUT * 3 } ) ;
83+
84+ await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 10 } )
85+
86+ console . log ( 'Page opened successfully' )
87+
88+ } )
89+
90+ } )
0 commit comments