-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtest.js
85 lines (74 loc) · 1.99 KB
/
test.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
var async = require('async'),
Runner = require('./');
var testSrc = [
'(function() {',
'console.log("TAP version 13");',
'console.log("# beep");',
'console.log("ok 1 should be equal");',
'console.log("ok 2 should be equal");',
'console.log("");',
'console.log("1..2");',
'console.log("# tests 2");',
'console.log("# pass 2");',
'console.log("");',
'console.log("# ok");',
'})();'
].join('\r\n');
var user = process.env.SAUCE_USER,
key = process.env.SAUCE_KEY,
build = process.env.DRONE_BUILD_NUMBER;
if (!user || !key) {
console.log('Set SAUCE_USER and SAUCE_KEY to your SauceLabs credentials');
process.exit(1);
}
var runner = new Runner(user, key);
runner.on('tunnel-connect', function() {
console.log('Connecting tunnel');
});
runner.on('tunnel', function() {
console.log('Tunnel connected');
});
runner.on('browser', function() {
console.log('Connected to browser');
});
runner.on('close', function() {
console.log('Runner closed');
});
run();
function run() {
async.series([
test('firefox'),
test('chrome')
], complete);
}
function test(browser) {
return function(callback) {
console.log('Testing', browser);
var capabilities = {
browserName: browser,
name: 'Test ' + browser,
build: build
};
runner.run(testSrc, capabilities,
function(err, results) {
if (err) {
return callback(err);
} else if (!results.ok) {
return callback(new Error('Tests failed'));
} else {
callback();
}
});
};
}
function complete(err) {
runner.close(function() {
if (err) {
console.error('Error occurred');
console.error(err);
process.exit(1);
} else {
console.log('Tests passed!');
}
});
}