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+ failureThresholdType : 'percent' ,
21+ failureThreshold : 0.5
22+ } ;
23+
24+
25+ //USERS:
26+ const USERNAME = 'color_picker_TestUser'
27+ const PASSWORD = 'testpassword'
28+
29+ //TESTS:
30+
31+ jest . setTimeout ( 300000 ) ;
32+
33+
34+
35+ describe ( 'Test for the Control Panel - color picker' , ( ) => {
36+
37+ beforeAll ( async ( ) => {
38+ await page . goto ( baseURL ) ;
39+ await page . waitForSelector ( selectors . LOGIN_PAGE_SELECTOR ) ;
40+ await page . waitForSelector ( selectors . USERNAME_SELECTOR )
41+ await expect ( page )
42+ . toFill ( selectors . USERNAME_SELECTOR , USERNAME , { timeout : TIMEOUT } ) ;
43+
44+ await page . waitForSelector ( selectors . PASSWORD_SELECTOR )
45+ await expect ( page )
46+ . toFill ( selectors . PASSWORD_SELECTOR , PASSWORD , { timeout : TIMEOUT } ) ;
47+
48+ await page . click ( selectors . LOGIN_BUTTON_SELECTOR )
49+
50+ await page . waitForFunction ( ( ) => {
51+ let el = document . querySelector ( '#loading-spinner' ) ;
52+ return el == null || el . clientHeight === 0 ;
53+ } , { timeout : TIMEOUT } ) ;
54+ } ) ;
55+
56+ it ( 'Open new page' , async ( ) => {
57+
58+ console . log ( 'Opening a new NetPyNE page' )
59+
60+ await page . on ( "dialog" , dialog =>
61+ dialog . accept ( ) ) ;
62+
63+ await page . waitForSelector ( selectors . FILE_TAB_SELECTOR , { timeout : PAGE_WAIT * 30 } )
64+ await page . waitForTimeout ( PAGE_WAIT * 7 )
65+ await page . click ( selectors . FILE_TAB_SELECTOR )
66+ await page . waitForSelector ( selectors . NEW_FILE_SELECTOR , { timeout : PAGE_WAIT * 10 } )
67+ await page . waitForTimeout ( PAGE_WAIT )
68+ await page . click ( selectors . NEW_FILE_SELECTOR )
69+ await page . waitForTimeout ( PAGE_WAIT )
70+ await page . waitForSelector ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
71+ await page . click ( selectors . CONFIRM_NEW_PAGE_SELECTOR )
72+ await page . waitForTimeout ( PAGE_WAIT * 2 )
73+
74+ await page . waitForFunction ( ( ) => {
75+ let el = document . querySelector ( '#loading-spinner' ) ;
76+ return el == null || el . clientHeight === 0 ;
77+ } , { timeout : TIMEOUT } ) ;
78+
79+
80+ await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT * 10 } )
81+
82+ console . log ( 'Page opened successfully' )
83+
84+ } )
85+
86+ it ( 'Load Tutorial#2' , async ( ) => {
87+
88+ await page . waitForTimeout ( PAGE_WAIT * 2 )
89+ await page . waitForSelector ( selectors . SELECT_CELL_BUTTON_SELECTOR , { timeout : TIMEOUT } )
90+ await page . waitForTimeout ( PAGE_WAIT )
91+ await page . click ( selectors . TUTORIALS_BUTTON_SELECTOR , { timeout : TIMEOUT } )
92+
93+ console . log ( 'Loading Tutorial #2' )
94+ await page . click ( selectors . TUTORIAL_2_SELECTOR , { timeout : TIMEOUT } )
95+ await page . waitForTimeout ( PAGE_WAIT )
96+
97+ await page . waitForSelector ( selectors . PYR_2_CELL_SELECTOR )
98+ await page . waitForSelector ( selectors . INT_CELL_SELECTOR )
99+ await page . waitForTimeout ( PAGE_WAIT )
100+
101+ console . log ( 'Tutorial #2 loaded successfully' )
102+
103+
104+ } )
105+
106+
107+ it ( 'Create network' , async ( ) => {
108+
109+ await page . waitForSelector ( selectors . MODEL_BUTTON_SELECTOR )
110+ await page . click ( selectors . MODEL_BUTTON_SELECTOR , { timeout : TIMEOUT } ) ;
111+ await page . waitForSelector ( selectors . CREATE_NETWORK_SELECTOR )
112+ await page . click ( selectors . CREATE_NETWORK_SELECTOR , { timeout : TIMEOUT } ) ;
113+
114+ console . log ( 'Create network' )
115+
116+ await page . waitForSelector ( selectors . DISABLED_RASTER_PLOT_SELECTOR , { timeout : TIMEOUT * 3 } )
117+
118+ console . log ( 'Network created successfully' )
119+
120+ await page . waitForTimeout ( PAGE_WAIT )
121+
122+ console . log ( '... taking snapshot ...' ) ;
123+ await page . waitForTimeout ( PAGE_WAIT ) ;
124+ expect ( await page . screenshot ( ) )
125+ . toMatchImageSnapshot ( {
126+ ...SNAPSHOT_OPTIONS ,
127+ customSnapshotIdentifier : 'Tutorial#2 Network'
128+ } ) ;
129+ } )
130+
131+
132+ } ) ;
0 commit comments