We use the closure library across several different projects that share code. We're starting up with AngularJS in one of the projects now and we're trying to get the Karma runner working properly.
I've followed the advice from this post, but can't get it working all the way.
How to configure karma-runner (also known as testacular) to work with closure-library
It is working to goog.require('my.namespaced.file') but when my/namespaced/file.js has a goog.require('goog.dom') or something from the closure library, the Karma runner pukes out this...
Starting Karma Server (http://karma-runner.github.io)
-------------------------------------------------------------------
INFO [karma]: Karma v0.9.2 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
NOT SERVED FILE undefined
INFO [Chrome 27.0 (Mac)]: Connected on socket id 3tRuxHEhooSb458fJnFt
ERROR [karma]: [TypeError: Cannot call method 'indexOf' of undefined]
TypeError: Cannot call method 'indexOf' of undefined
at /usr/local/lib/node_modules/karma/lib/web-server.js:103:28
at Array.map (native)
at /usr/local/lib/node_modules/karma/lib/web-server.js:91:43
at /usr/local/lib/node_modules/karma/lib/web-server.js:37:35
at fs.js:266:14
at Object.oncomplete (fs.js:107:15)
Here is my karma.conf.js file
basePath = '../../../../';
// frameworks to use
frameworks = ['jasmine', 'closure'];
// list of files / patterns to load in the browser
files = [
// closure base
{pattern: 'closure-library/closure/goog/base.js', watched: false, included: true, served: true},
{pattern: 'ne-js/src/main/js/ne-js.deps.js', watched: false, included: true, served: true},
{pattern: 'angular-ne/src/main/js/angular-ne.deps.js', watched: false, included: true, served: true},
{pattern: 'ne-webServices/src/main/js/ne-webServices.deps.js', watched: false, included: true, served: true},
{pattern: 'directives/src/main/js/directives.deps.js', watched: false, included: true, served: true},
{pattern: 'webapp/src/main/js/webapp.deps.js', watched: false, included: true, served: true},
{pattern: 'webapp/src/test/lib/angular.js', watched: false, included: false, served: true},
{pattern: 'webapp/src/test/lib/angular-mocks.js', watched: false, included: false, served: true},
{pattern: 'webapp/src/main/js/**/*.js', watched: true, included: false, served: true},
{pattern: 'webapp/src/test/js/**/*.js', watched: true, included: true, served: true},
];
preprocessors = {
'webapp/src/test/js/**/*.js': ['closure', 'closure-iit'],
'webapp/src/main/js/**/*.js': ['closure'],
};
autoWatch = true;
browsers = ['Chrome'];
// plugins to load
plugins = [
'testacular-closure',
'karma-jasmine',
'karma-chrome-launcher',
'karma-phantomjs-launcher',
];