1 | const test = require('tap').test
|
2 | const Nightmare = require('nightmare')
|
3 |
|
4 | const night = Nightmare({
|
5 | openDevTools: {
|
6 | mode: 'detach'
|
7 | },
|
8 | show : true,
|
9 | executionTimeout: 120e3
|
10 | })
|
11 |
|
12 | const data = {
|
13 | phoneCode: '+9',
|
14 | phone : '996620000',
|
15 | code : '22222',
|
16 |
|
17 | url : 'http://localhost:8000/',
|
18 | sel1: {
|
19 | country: '[ng-model="credentials.phone_country"]',
|
20 | phone : '[ng-model="credentials.phone_number"]',
|
21 | code : '[ng-model="credentials.phone_code"]',
|
22 | next : '.login_head_submit_btn',
|
23 | ok : '[ng-click="$close()"]',
|
24 | form : '.login_page',
|
25 | end : '[my-i18n="im_select_a_chat"]',
|
26 | err : '[my-i18n="error_modal_internal_title"]',
|
27 | im : 'Please select a chat to start messaging'
|
28 | }
|
29 | }
|
30 |
|
31 | const fieldFastEdit = function(sel) {
|
32 | document.querySelector(sel).value = ''
|
33 | return document.querySelector(sel).value
|
34 | }
|
35 | test('try login', t => {
|
36 | t.notThrow(async () => {
|
37 | let count = 0,
|
38 | done = false
|
39 | await night
|
40 | .goto(data.url)
|
41 | while (count < 5 && !done) {
|
42 | const isError = await night
|
43 | .wait(data.sel1.country)
|
44 | .wait(8e3)
|
45 | .visible(data.sel1.err)
|
46 | console.log('succ', isError)
|
47 | done = !isError
|
48 | if (isError)
|
49 | await night
|
50 | .refresh()
|
51 | count++
|
52 | }
|
53 | await night
|
54 |
|
55 |
|
56 |
|
57 |
|
58 | .evaluate(fieldFastEdit, data.sel1.country)
|
59 | .insert(
|
60 | data.sel1.country,
|
61 | data.phoneCode)
|
62 | .insert(
|
63 | data.sel1.phone,
|
64 | data.phone)
|
65 | .click(data.sel1.next)
|
66 | .wait(data.sel1.ok)
|
67 | .wait(2e3)
|
68 | .click(data.sel1.ok)
|
69 | .wait(data.sel1.code)
|
70 | .wait(2e3)
|
71 | .type(data.sel1.code, data.code)
|
72 | .wait(data.sel1.end)
|
73 | .wait(9e3)
|
74 | const text = await night
|
75 | .evaluate(function(sel){
|
76 | return document.querySelector(sel).innerText
|
77 | }, data.sel1.end)
|
78 | if (text === data.sel1.im)
|
79 | await night.end()
|
80 |
|
81 |
|
82 | console.warn('done', text)
|
83 |
|
84 | t.equal(text, data.sel1.im, 'valid welcome message')
|
85 | t.end()
|
86 |
|
87 |
|
88 | }, 'smoke test')
|
89 | }) |
\ | No newline at end of file |