-
Notifications
You must be signed in to change notification settings - Fork 50
/
adapter.js
83 lines (70 loc) · 2.7 KB
/
adapter.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
/*
* Copyright 2014-2015 Workiva Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*eslint-env browser*/
/*global Promise*/
(function (karma, System) {
if (!System) {
throw new Error('SystemJS was not found. Please make sure you have ' +
'initialized jspm via installing a dependency with jspm, ' +
'or by running \'jspm dl-loader\'.');
}
System.config({baseURL: 'base'});
var stripExtension = typeof karma.config.jspm.stripExtension === 'boolean' ? karma.config.jspm.stripExtension : true;
// Prevent immediately starting tests.
karma.loaded = function () {
if (karma.config.jspm.paths !== undefined &&
typeof karma.config.jspm.paths === 'object') {
System.config({
paths: karma.config.jspm.paths
});
}
if (karma.config.jspm.meta !== undefined &&
typeof karma.config.jspm.meta === 'object') {
System.config({
meta: karma.config.jspm.meta
});
}
if (karma.config.jspm.map !== undefined && typeof karma.config.jspm.map === 'object') {
System.config({
map: karma.config.jspm.map
});
}
// Exclude bundle configurations if useBundles option is not specified
if (!karma.config.jspm.useBundles) {
System.config({ bundles: [] });
}
// Load everything specified in loadFiles in the specified order
var promiseChain = Promise.resolve();
for (var i = 0; i < karma.config.jspm.expandedFiles.length; i++) {
promiseChain = promiseChain.then((function (moduleName) {
return function () {
return System['import'](moduleName);
};
})(extractModuleName(karma.config.jspm.expandedFiles[i])));
}
promiseChain.then(function () {
karma.start();
}, function (e) {
karma.error(e.name + ': ' + e.message);
});
};
function extractModuleName(fileName) {
if (stripExtension) {
return fileName.replace(/\.js$/, '');
}
return fileName;
}
})(window.__karma__, window.System);