Просмотр исходного кода

Configure karma to load angular, requirejs and test/source files

Use test-main.js file to configure requirejs so that AMD loader can be
used
Alasdair Smith 8 лет назад
Родитель
Сommit
89c9475d29
2 измененных файлов с 27 добавлено и 1 удалено
  1. 13 1
      services/web/karma.conf.js
  2. 14 0
      services/web/test/unit_frontend/coffee/test-main.coffee

+ 13 - 1
services/web/karma.conf.js

@@ -10,7 +10,19 @@ module.exports = function (config) {
       }
     },
     browsers: ['ChromeCustom'],
-    files: [],
+    files: [
+      'test/unit_frontend/js/bootstrap.js',
+      // Angular must be loaded before requirejs to set up angular global
+      'public/js/libs/angular-1.6.4.min.js',
+      'public/js/libs/angular-mocks.js',
+      'public/js/libs/jquery-1.11.1.min.js',
+      // Set up requirejs
+      'test/unit_frontend/js/test-main.js',
+      // Include source & test files, but don't "include" them as requirejs
+      // handles this for us
+      { pattern: 'public/js/**/*.js', included: false },
+      { pattern: 'test/unit_frontend/js/**/*.js', included: false }
+    ],
     frameworks: ['requirejs', 'mocha', 'chai-sinon'],
     plugins: [
       require('karma-requirejs'),

+ 14 - 0
services/web/test/unit_frontend/coffee/test-main.coffee

@@ -0,0 +1,14 @@
+# Set up requirejs to load the tests
+# Uses heuristic that test filenames end with Tests.js
+tests = []
+for file of window.__karma__.files
+  if window.__karma__.files.hasOwnProperty(file)
+    if /Tests\.js$/.test(file)
+      tests.push(file)
+
+requirejs.config
+  baseUrl: '/base/public/js'
+  paths:
+    "moment": "libs/moment-2.9.0"
+  deps: tests
+  callback: window.__karma__.start