-
Notifications
You must be signed in to change notification settings - Fork 41
/
evaluate.js
66 lines (65 loc) · 2.13 KB
/
evaluate.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
const Chromy = require('../dist')
const assert = require('assert')
describe('evaluate', function() {
this.timeout(5000);
afterEach(async () => {
console.log('after')
await Chromy.cleanup()
})
it('can return any type', (done) => {
const chromy = new Chromy()
chromy.chain()
.goto('file://' + process.env.PWD + '/test_pages/index.html')
.evaluate(_ => "abc")
.result(r => assert.equal('abc', r))
.evaluate(_ => 100)
.result(r => assert.equal(100, r))
.evaluate(_ => 100.5)
.result(r => assert.equal(100.5, r))
.evaluate(_ => true)
.result(r => assert.equal(true, r))
.evaluate(_ => {return {hoge: 123}})
.result(r => assert.equal(123, r.hoge))
.evaluate(_ => undefined)
.result(r => assert.equal(undefined, r))
.end()
.then(_ => done())
.catch(e => {
done(e)
})
})
if (!process.env.WITH_BABEL) {
it('resolve promise', (done) => {
const chromy = new Chromy()
chromy.chain()
.goto('file://' + process.env.PWD + '/test_pages/index.html')
.evaluate(_ => Promise.resolve(100))
.result(r => assert.equal(100, r))
.evaluate(_ => Promise.resolve({a: 'abc'}))
.result(r => assert.equal('abc', r.a))
.evaluate(_ => Promise.resolve(Promise.resolve(Promise.resolve(100))))
.result(r => assert.equal(100, r))
.evaluate(async r => await 200)
.result(r => assert.equal(200, r))
.end()
.then(_ => done())
.catch(e => {
done(e)
})
})
}
it('can accept any arguments', (done) => {
const chromy = new Chromy()
chromy.chain()
.goto('file://' + process.env.PWD + '/test_pages/index.html')
.evaluate(a => a, ['abc'])
.result(r => assert.equal('abc', r))
.evaluate((a, b) => a + b, ['abc', 123])
.result(r => assert.equal('abc123', r))
.end()
.then(_ => done())
.catch(e => {
done(e)
})
})
})