angularjs - Angular, Karma, tsify, woes -


i'm trying set tests, using angular 1.5, tsify, , karma. i'm very, close, i'm running issue haven't quite got right:

i'm following setup described here: https://github.com/cmlenz/tsify-test (this example doesn't include angular)

i error angular-mocks: "cannot set property 'mock' of undefined"

that has either timing thing or scope thing -- either angular-mocks loading soon, or browserify wrapping scope of angular variable, , mocks can't see it. no idea.

here pertinent parts of karma.conf.js file:

    frameworks: ['browserify', 'jasmine'],      files: [         'https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js',         './node_modules/angular-mocks/angular-mocks.js',         './modules/**/*.spec.ts'     ],      exclude: [],      preprocessors: {         '**/*.ts': 'browserify'     },      browserify: {         debug: true,         plugin: [             ['tsify']         ]     }, 

this must have way i'm loading mocks -- it's not used angular app, tests, must have it.

any hints?

angular-mocks needs loaded after angular , current karma configuarion, that's not happening - angular not being loaded until it's required in 1 of .ts files upon 1 of .spec.ts files dependent.

one solution add additional file requires both angular , angular-mocks , ensure file precedes .spec.ts files in karma's files configuration.

for example, file named require-angular-mocks.js created:

require('angular'); require('angular-mocks'); 

and added karma configuration (replacing angular-mocks under node_modules):

files: [     'https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js',     './require-angular-mocks.js',     './modules/**/*.spec.ts' ],  preprocessors: {     '**/*.js': 'browserify',     '**/*.ts': 'browserify' }, 

that should ensure angular , angular-mocks loaded in correct order , loaded before specs. note if it's .js file, you'll need entry in karma's preprocessors configuration.


Comments

Popular posts from this blog

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -

mongodb - How to keep track of users making Stripe Payments -