1
+ /* globals requirejs, require */
2
+
1
3
import * as QUnit from 'qunit' ;
2
- import AbstractTestLoader , {
3
- addModuleIncludeMatcher ,
4
- } from 'ember-cli-test-loader/test-support/index' ;
5
4
6
- addModuleIncludeMatcher ( function ( moduleName ) {
7
- return moduleName . match ( / \. j s h i n t $ / ) ;
8
- } ) ;
5
+ class TestLoader {
6
+ static load ( ) {
7
+ new TestLoader ( ) . loadModules ( ) ;
8
+ }
9
+
10
+ constructor ( ) {
11
+ this . _didLogMissingUnsee = false ;
12
+ }
13
+
14
+ shouldLoadModule ( moduleName ) {
15
+ return moduleName . match ( / [ - _ ] t e s t $ / ) ;
16
+ }
17
+
18
+ listModules ( ) {
19
+ return Object . keys ( requirejs . entries ) ;
20
+ }
21
+
22
+ listTestModules ( ) {
23
+ let moduleNames = this . listModules ( ) ;
24
+ let testModules = [ ] ;
25
+ let moduleName ;
26
+
27
+ for ( let i = 0 ; i < moduleNames . length ; i ++ ) {
28
+ moduleName = moduleNames [ i ] ;
29
+
30
+ if ( this . shouldLoadModule ( moduleName ) ) {
31
+ testModules . push ( moduleName ) ;
32
+ }
33
+ }
34
+
35
+ return testModules ;
36
+ }
37
+
38
+ loadModules ( ) {
39
+ let testModules = this . listTestModules ( ) ;
40
+ let testModule ;
41
+
42
+ for ( let i = 0 ; i < testModules . length ; i ++ ) {
43
+ testModule = testModules [ i ] ;
44
+ this . require ( testModule ) ;
45
+ this . unsee ( testModule ) ;
46
+ }
47
+ }
48
+
49
+ require ( moduleName ) {
50
+ try {
51
+ require ( moduleName ) ;
52
+ } catch ( e ) {
53
+ this . moduleLoadFailure ( moduleName , e ) ;
54
+ }
55
+ }
56
+
57
+ unsee ( moduleName ) {
58
+ if ( typeof require . unsee === 'function' ) {
59
+ require . unsee ( moduleName ) ;
60
+ } else if ( ! this . _didLogMissingUnsee ) {
61
+ this . _didLogMissingUnsee = true ;
62
+ if ( typeof console !== 'undefined' ) {
63
+ console . warn (
64
+ 'unable to require.unsee, please upgrade loader.js to >= v3.3.0'
65
+ ) ;
66
+ }
67
+ }
68
+ }
69
+
70
+ moduleLoadFailure ( moduleName , error ) {
71
+ moduleLoadFailures . push ( error ) ;
72
+
73
+ QUnit . module ( 'TestLoader Failures' ) ;
74
+ QUnit . test ( moduleName + ': could not be loaded' , function ( ) {
75
+ throw error ;
76
+ } ) ;
77
+ }
78
+ }
9
79
10
80
let moduleLoadFailures = [ ] ;
11
81
@@ -26,17 +96,6 @@ QUnit.done(function () {
26
96
}
27
97
} ) ;
28
98
29
- export class TestLoader extends AbstractTestLoader {
30
- moduleLoadFailure ( moduleName , error ) {
31
- moduleLoadFailures . push ( error ) ;
32
-
33
- QUnit . module ( 'TestLoader Failures' ) ;
34
- QUnit . test ( moduleName + ': could not be loaded' , function ( ) {
35
- throw error ;
36
- } ) ;
37
- }
38
- }
39
-
40
99
/**
41
100
Load tests following the default patterns:
42
101
0 commit comments