/
core.worker.test.js
55 lines (45 loc) · 1.28 KB
/
core.worker.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
define(function(require) {
'use strict';
var registerSuite = require('intern!object');
var expect = require('intern/chai!expect');
var TestWorker = require('../helper/test-worker');
var allyModules = require('../helper/ally-modules');
registerSuite(function() {
var worker;
// 'ally.js/<namespace>/<module>'
// 'ally.js/<module>'
var modules = allyModules.map(function(namespace, module) {
return ['ally.js', namespace, module].filter(Boolean).join('/');
});
var suite = {
name: 'core: WebWorker',
before: function() {
if (!TestWorker) {
return;
}
worker = new TestWorker();
},
after: function() {
worker && worker.terminate();
worker = null;
},
};
function generateTestForModule(module) {
return function() {
if (!worker) {
this.skip('Worker not supported');
}
var deferred = this.async(30000);
worker.run(module, function(_module) {
return Boolean(_module);
}).test(deferred, function(_module) {
expect(_module).to.equal(true);
});
};
}
modules.forEach(function(module) {
suite['load ' + module] = generateTestForModule(module);
});
return suite;
});
});