I've been trying to upgrade our AngularJS app from 1.2.6 to 1.3.5 but have 
consistently been getting errors when trying to run the tests and the 
errors occur at test initialization. Further investigation proves that the 
tests are not even hit at the insertion points, rather fail just after 
initialization. 

We are using Jasmine 1.x and karma test runner with Chrome as the browser. 
We are also using grunt to initiate the tests in this sequence:

    grunt.registerTask('test', function () {
        console.log(config);
        grunt.task.run([
            'jsbeautifier',
            'newer:jshint',
            'clean:server',
            'autoprefixer',
            'replace:htmlcommon',
            'replace:htmlenv',
            'replace:jscommon',
            'replace:jsenv',
            'to_single_quotes',
            'connect:test',
            'karma'
        ]);
    });
 

Here is the error log:

    LOG: 'WARNING: Tried to load angular more than once.'
    Chrome 39.0.2171 (Mac OS X 10.10.1) ERROR                               
      
        Uncaught TypeError: undefined is not a function
        at 
/Users/devUser/Development/WebAppGroup/webapp/app/bower_components/angular/angular.js:25917
    Chrome 39.0.2171 (Mac OS X 10.10.1) ERROR                               
    
        Uncaught TypeError: undefined is not a function
        at 
/Users/devUser/Development/WebAppGroup/webapp/app/bower_components/angular-resource/angular-
 
    
        resource.js:8
    Chrome 39.0.2171 (Mac OS X 10.10.1) ERROR                               
    
        Uncaught TypeError: undefined is not a function
        at 
/Users/devUser/Development/WebAppGroup/webapp/app/bower_components/angular-sanitize/angular-
        sanitize.js:8
    Chrome 39.0.2171 (Mac OS X 10.10.1) ERROR                               
    
        Uncaught TypeError: undefined is not a function
        at 
/Users/devUser/Development/WebAppGroup/webapp/app/bower_components/angular-route/angular-
        route.js:26
    Chrome 39.0.2171 (Mac OS X 10.10.1): Executed 0 of 0 ERROR (0.391 secs 
/ 0 secs)

Excerpt of dependencies form our karma config file:

      'app/scripts/common/googlemaps.js',
      'app/bower_components/angular/angular.js',
      'app/bower_components/angular-translate/angular-translate.js',
      
'app/bower_components/angular-translate-loader-partial/angular-translate-loader-partial.js',
      'app/bower_components/angular-mocks/angular-mocks.js',
      'app/bower_components/angular-resource/angular-resource.js',
      'app/bower_components/angular-cookies/angular-cookies.js',
      'app/bower_components/angular-sanitize/angular-sanitize.js',
      'app/bower_components/angular-route/angular-route.js',
      'app/bower_components/momentjs/moment.js',
      'app/bower_components/angular-touch/angular-touch.js',
      'app/bower_components/angular-carousel/dist/angular-carousel.js',
      'app/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js',
      'app/bower_components/angular-scroll/angular-scroll.js',
      'app/bower_components/jquery/dist/jquery.min.js',
      'app/bower_components/jquery/dist/jquery.js',
      'app/bower_components/angularitics/src/angulartics.js',
      'app/bower_components/angularitics/src/angulartics-adobe.js',
      'app/bower_components/angularitics/src/angulartics-chartbeat.js',
      'app/bower_components/angularitics/src/angulartics-flurry.js',
      'app/bower_components/angularitics/src/angulartics-ga-cordova.js',
      'app/bower_components/angularitics/src/angulartics-ga.js',
      'app/bower_components/angularitics/src/angulartics-gtm.js',
      'app/bower_components/angularitics/src/angulartics-kissmetrics.js',
      'app/bower_components/angularitics/src/angulartics-mixpanel.js',
      'app/bower_components/angularitics/src/angulartics-piwik.js',
      'app/bower_components/angularitics/src/angulartics-scroll.js',
      'app/bower_components/angularitics/src/angulartics-segmentio.js',
      'app/bower_components/angularitics/src/angulartics-splunk.js',
      'app/bower_components/angularitics/src/angulartics-woopra.js',
      'app/bower_components/angularitics/src/angulartics-marketo.js',
      'app/bower_components/ngstorage/ngStorage.js',
      'app/bower_components/ng-clip/src/ngClip.js',
      'app/bower_components/zeroclipboard/dist/ZeroClipboard.js',

**UPDATED** Here is the entire karma config file:

    module.exports = function(config) {
    config.set({
    // base path, that will be used to resolve files and exclude
    basePath: '',

    // testing framework to use (jasmine/mocha/qunit/...)
    frameworks: ['jasmine', 'ng-scenario'],
    // list of files / patterns to load in the browser
    files: [
      'app/scripts/common/googlemaps.js',
      'app/bower_components/angular/angular.js',
      'app/bower_components/angular-translate/angular-translate.js',
      
'app/bower_components/angular-translate-loader-partial/angular-translate-loader-partial.js',
      'app/bower_components/angular-mocks/angular-mocks.js',
      'app/bower_components/angular-resource/angular-resource.js',
      'app/bower_components/angular-cookies/angular-cookies.js',
      'app/bower_components/angular-sanitize/angular-sanitize.js',
      'app/bower_components/angular-route/angular-route.js',
      'app/bower_components/momentjs/moment.js',
      'app/bower_components/angular-touch/angular-touch.js',
      'app/bower_components/angular-carousel/dist/angular-carousel.js',
      'app/bower_components/angular-bootstrap/ui-bootstrap-tpls.min.js',
      'app/bower_components/angular-scroll/angular-scroll.js',
      'app/bower_components/jquery/dist/jquery.min.js',
      'app/bower_components/jquery/dist/jquery.js',
      'app/bower_components/angularitics/src/angulartics.js',
      'app/bower_components/angularitics/src/angulartics-adobe.js',
      'app/bower_components/angularitics/src/angulartics-chartbeat.js',
      'app/bower_components/angularitics/src/angulartics-flurry.js',
      'app/bower_components/angularitics/src/angulartics-ga-cordova.js',
      'app/bower_components/angularitics/src/angulartics-ga.js',
      'app/bower_components/angularitics/src/angulartics-gtm.js',
      'app/bower_components/angularitics/src/angulartics-kissmetrics.js',
      'app/bower_components/angularitics/src/angulartics-mixpanel.js',
      'app/bower_components/angularitics/src/angulartics-piwik.js',
      'app/bower_components/angularitics/src/angulartics-scroll.js',
      'app/bower_components/angularitics/src/angulartics-segmentio.js',
      'app/bower_components/angularitics/src/angulartics-splunk.js',
      'app/bower_components/angularitics/src/angulartics-woopra.js',
      'app/bower_components/angularitics/src/angulartics-marketo.js',
      'app/bower_components/ngstorage/ngStorage.js',
      /*      'app/bower_components/ng-clip/src/ngClip.js',
      'app/bower_components/zeroclipboard/dist/ZeroClipboard.js',*/
      'app/scripts/directives/setup.js',
      'app/scripts/*.js',
      'app/scripts/**/*.js',
      'test/mock/**/*.js',
      'test/spec/**/*.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: false,

    // 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: false,
    reporters: ['progress', 'coverage'],
    preprocessors: {
      'app/scripts/**/*.js': ['coverage']
    }
    });

    };


Basically upon installing all the dependencies via bower, bower complains 
that several of the dependencies don't agree with AngularJS 1.3.x, but 
rather it needs 1.2.x where x = minor version required by individual 
dependency. I've tried doing the 'majority rules' take and given 1.2.27 
(where most of the dependencies were asking for that particular version) 
and I've tried brute force 1.3.5 upgrade.

As a last resort, I've also applied the '*' to the dependency in my 
bower.json file to get the latest version of each dependency to use with 
AngularJS 1.3.5, however this doesn't work as well.

The feature set works as I can start my angular app and work through most 
of the features, but when it comes to ur BDD tests, this fails.

I'm stuck at this point as I've tried all possible paths. I think this 
issue has something related to the extensive set of libraries we are using 
and it's individual requirements for an older version of AngularJS. Also, 
why is it trying to load AngularJS more than once? I've read up on this 
being a possibility due to bad or missing routes but our routes work well 
when the application is started up.

Any thoughts?

Thanks,
Ben.

-- 
You received this message because you are subscribed to the Google Groups 
"AngularJS" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/angular.
For more options, visit https://groups.google.com/d/optout.

Reply via email to