Correct the Karma conf to search correct dirs

Changes the basepath and other paths to allow for correct specification
of template dirs, etc.

Change-Id: I6a5d155382dd2ff942d7738e67296a09d85b354b
Closes-Bug: 1507703
This commit is contained in:
Matt Borland 2015-10-19 11:42:19 -06:00 committed by Matt Borland
parent 152f38221f
commit 859617fa32
1 changed files with 53 additions and 23 deletions

View File

@ -46,27 +46,43 @@ module.exports = function (config) {
// NOTE: the templates must also be listed in the files section below.
'./**/*.html': ['ng-html2js'],
// Used to indicate files requiring coverage reports.
'../static/**/!(*.spec).js': ['coverage'],
'../dashboards/**/static/**/!(*.spec).js': ['coverage']
'./static/app/**/!(*.spec).js': ['coverage'],
'./dashboards/**/static/**/!(*.spec).js': ['coverage']
},
// Sets up module to process templates.
ngHtml2JsPreprocessor: {
prependPrefix: '/static/',
moduleName: 'templates'
moduleName: 'templates',
cacheIdFromPath: function(filepath) {
// This function takes the raw provided path from the file searches
// below (in the files: pattern list), applies the filter from the
// preprocessor above (basically, finds the html files), then uses
// this function to translate the relative file path into a path
// that matches what would actually be called in production.
//
// e.g.
// dashboards/project/static/dashboard/project/workflow/launch-instance/configuration/load-edit.html
// becomes:
// /static/dashboard/project/workflow/launch-instance/configuration/load-edit.html
// We can't just use stripPrefix because there are a couple of
// prefixes that need to be altered (and may be more).
return filepath.replace(/^dashboards\/[^\/]+/, '')
.replace(/^static\/app/, '/static/app');
},
},
// Assumes you're in the top-level horizon directory.
basePath: './static/',
// This establishes the base for most referenced paths as being relative
// to this file, i.e. ./openstack_dashboard.
basePath: './',
// Contains both source and test files.
files: [
/*
* shim, partly stolen from /i18n/js/horizon/
* Contains expected items not provided elsewhere (dynamically by
* Django or via jasmine template.
* Django or via jasmine template. This is in the project root.
*/
'../../test-shim.js',
'../test-shim.js',
// from jasmine.html
xstaticPath + 'jquery/data/jquery.js',
@ -83,24 +99,37 @@ module.exports = function (config) {
xstaticPath + 'spin/data/spin.js',
xstaticPath + 'spin/data/spin.jquery.js',
// TODO: These should be mocked.
'../../horizon/static/horizon/js/horizon.js',
// TODO: These should be mocked. However, that could be complex
// and there's less harm in exposing these directly. These are
// located in the project's ./horizon directory.
'../horizon/static/horizon/js/horizon.js',
/**
* Include framework source code from horizon that we need.
* Otherwise, karma will not be able to find them when testing.
* These files should be mocked in the foreseeable future.
* These are located within the project's ./horizon directory.
*/
'../horizon/static/framework/**/*.module.js',
'../horizon/static/framework/**/!(*.spec|*.mock).js',
/**
* Standard openstack_dashboard JS locations
*
* For now, all Angular code is located in ./static/app or
* ./dashboard/.../static/.
*
* Some other JS code exists in other directories (contrib, test) but
* but it isn't conformant to our current practices, etc.
*/
'../../horizon/static/framework/**/*.module.js',
'../../horizon/static/framework/**/!(*.spec|*.mock).js',
/**
* First, list all the files that defines application's angular modules.
* Those files have extension of `.module.js`. The order among them is
* not significant.
*/
'**/*.module.js',
'../dashboards/**/static/**/*.module.js',
'./static/app/**/*.module.js',
'./dashboards/**/static/**/*.module.js',
/**
* Followed by other JavaScript files that defines angular providers
@ -108,28 +137,28 @@ module.exports = function (config) {
* files or spec files defined below. The order among them is not
* significant.
*/
'**/!(*.spec|*.mock).js',
'../dashboards/**/static/**/!(*.spec|*.mock).js',
'./static/app/**/!(*.spec|*.mock).js',
'./dashboards/**/static/**/!(*.spec|*.mock).js',
/**
* Then, list files for mocks with `mock.js` extension. The order
* among them should not be significant.
*/
'**/*.mock.js',
'../dashboards/**/static/**/*.mock.js',
'./static/app/**/*.mock.js',
'./dashboards/**/static/**/*.mock.js',
/**
* Finally, list files for spec with `spec.js` extension. The order
* among them should not be significant.
*/
'**/*.spec.js',
'../dashboards/**/static/**/*.spec.js',
'./static/app/**/*.spec.js',
'./dashboards/**/static/**/*.spec.js',
/**
* Angular external templates
*/
'**/*.html',
'../dashboards/**/static/**/*.html'
'./static/app/**/*.html',
'./dashboards/**/static/**/*.html'
],
autoWatch: true,
@ -154,9 +183,10 @@ module.exports = function (config) {
'karma-threshold-reporter'
],
// Places coverage report in HTML format in the subdirectory below.
coverageReporter: {
type: 'html',
dir: '../.coverage-karma/'
dir: './.coverage-karma/'
},
// Coverage threshold values.