-
Notifications
You must be signed in to change notification settings - Fork 55
/
browser_setup.js
77 lines (66 loc) · 2.01 KB
/
browser_setup.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
"use strict";
var allTestFiles = [],
TEST_REGEXP = /\.test\.js$/i,
// TEST_REGEXP = /simple\.test\.js$/i,
TEAR_DOWN_REGEXP = /tear_down\.js$/i;
var pathToModule = function(path) {
return path.replace(/^\/base\//, '').replace(/\.js$/, '');
};
// Match all test files
Object.keys(window.__karma__.files).forEach(function(file) {
if (TEST_REGEXP.test(file)) {
// Normalize paths to RequireJS module names.
allTestFiles.push(pathToModule(file));
}
});
// Add the final tear down
Object.keys(window.__karma__.files).forEach(function(file) {
if (TEAR_DOWN_REGEXP.test(file)) {
// Normalize paths to RequireJS module names.
allTestFiles.push(pathToModule(file));
}
});
var baseUrl = window.__karma__.base || '/base';
require([(baseUrl + '/spec/common/globals/named_dependencies.js').replace('//','/')], function(modules) {
var requireJsPaths = {};
for (var key in modules) {
if (modules.hasOwnProperty(key) && modules[key].browser) {
requireJsPaths[key] = modules[key].browser;
}
}
require.config({
// Karma serves files under /base, which is the basePath from your config file
baseUrl: baseUrl,
// Ensure changes to these modules are reflected in node_helper.js
paths: requireJsPaths,
// The following requireJS depdendencies are not requireJS compatible but instead pollute the global namespace
// It is better therefore to grab the global object and provide that to requireJS dependency management
shim: {
'ably': {
exports: 'Ably'
},
'ably.noencryption': {
exports: 'Ably'
},
'browser-base64': {
exports: 'Base64'
},
'async': {
exports: 'async'
}
},
// dynamically load all test files
deps: allTestFiles,
// we have to kickoff nodeunit with Karma
callback: function() {
require(allTestFiles, function() {
var testModules = {};
for (var i = 0; i < allTestFiles.length; i++) {
testModules[allTestFiles[i]] = arguments[i];
}
nodeunit.run(testModules);
if (window.__karma__.start) { window.__karma__.start(); }
});
}
});
});