Karma.conf.js uncaught referencerror: google no defined
when i try to run karma test drive i get an error from one of my files saying my google library is undefined
Chrome 36.0.1985 (Mac OS X 10.9.4) ERROR
Uncaught ReferenceError: google is not defined
at /Users/giowong/rails_project/doctible_pre_treatment/app/assets/javascripts/angular-google-maps.min.js:7
my karma.conf.js file
// Karma configuration
module.exports = function(config) {
config.set({
// base path, that will be used to resolve files and exclude
basePath: '/Users/giowong/rails_project/doctible_pre_treatment/',
// testing framework to use (jasmine/mocha/qunit/...)
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'app/assets/components/angular/angular.js',
'app/assets/components/angular-mocks/angular-mocks.js',
'app/assets/components/angular-resource/angular-resource.js',
'app/assets/components/angular-payments/lib/angular-payments.js',
'app/assets/components/ng-file-upload/angular-file-upload.js',
'app/assets/components/ngDialog/js/ngDialog.js',
'app/assets/components/angular-route/angular-route.js',
'app/assets/components/angular-loading-bar/src/loading-bar.js',
'app/assets/javascripts/angular/filters/widget-filters.js',
'app/assets/components/angular-animate/angular-animate.js',
'app/assets/javascripts/angular/directives/loader.js',
'app/assets/javascripts/angular/directives/focus.js',
'app/assets/javascripts/angular/directives/checkout-form.js',
'app/assets/javascripts/angular/directives/provider-form.js',
'app/assets/components/angular-ui-utils/ui-utils.js',
'app/assets/components/angular-sanitize/angular-sanitize.js',
'app/assets/components/angular-bootstrap/ui-bootstrap.js',
'app/assets/components/angular-ui-map/ui-map.js',
'app/assets/components/underscore/underscore.js',
'app/assets/components/jquery-1.11.1.min.js',
'app/assets/javascripts/*.js',
'app/assets/javascripts/**/**/*.js',
'spec/javascripts/*.js'
],
// list of files / patterns to exclude
exclude:[],
// web server port
port: 8080,
// level of logging
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// Start these browsers, currently available:
// - Chrome
// - ChromeCanary
// - Firefox
// - Opera
// - Safari (only Mac)
// - PhantomJS
// - IE (only Windows)
browsers: ['Chrome'],
// Continuous Integration mode
// if true, it capture browsers, run tests and exit
singleRun: true
});
};
I have tried google already and no luck so far. I tried making a test file and google it myself. Any help is appreciated
+3
source to share
1 answer
You are getting this error because you are using the google maps v3 API in your application, but you donβt have any code that will initialize the window.google property when you run your tests.
Solution 1
Compile this layout to javascript and link compiled * .js into your config files.
Solution 2
- Create your own google-mock.js
- Add it to your karma.config file array
-
Add stab to google-mock.js for every call to the Google Maps API that you use in your application. as in the example below:
(function(){ window.google = window.google || { maps: { Map: function(){}, // and so on... } }; })();
Solution 3
- Open this link
- Save ALL text from this page to google-maps-api.js file
- Add the path to this file to your files array in the karma.config file
+13
source to share