Skip to content

error with DI in unit tests #278

Description

@vlio20

I have created some services via ng g service <NAME>.
I have added the service to app.ts bootsrap:

import {bootstrap} from 'angular2/platform/browser';
import {AngularDayPickerApp} from './app/angular-day-picker';
import {CalendarHelper} from './app/services/calendar-helper/calendar-helper';
import {Utils} from './app/services/utils/utils';

bootstrap(AngularDayPickerApp, [
  CalendarHelper,
  Utils
]);

Running ng serveworks correctly and services are injected without any problems.
The issue happens when I am running ng test:

Failed: No provider for Utils! (CalendarHelper -> Utils)
Error: DI Exception

Should I do something in the karma configuration?

Here is the full stacktrace:

Chrome 48.0.2564 (Mac OS X 10.10.5) CalendarHelper Service should build correct month for any day of week FAILED
        Failed: No provider for Utils! (CalendarHelper -> Utils)
        Error: DI Exception
            at NoProviderError.BaseException [as constructor] (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:7351:21)
            at NoProviderError.AbstractProviderError [as constructor] (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:1649:14)
            at new NoProviderError (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:1673:14)
            at Injector._throwOrNull (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11547:15)
            at Injector._getByKeyDefault (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11592:19)
            at Injector._getByKey (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11540:21)
            at Injector._getByDependency (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11528:21)
            at Injector._instantiate (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11423:32)
            at Injector._instantiateProvider (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11395:21)
            at Injector._new (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11385:19)
            at InjectorDynamicStrategy.getObjByKeyId (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11263:42)
            at Injector._getByKeyDefault (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11586:33)
            at Injector._getByKey (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11540:21)
            at Injector.get (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11340:19)
            at /Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/testing.dev.js:1917:25
            at Array.map (native)
            at Array.map (/Users/vioffe/personal/angular-day-picker/node_modules/es6-shim/es6-shim.js:1113:14)
            at FunctionWithParamTokens.execute (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/testing.dev.js:1916:33)
            at TestInjector.execute (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/testing.dev.js:1864:17)
            at Object.<anonymous> (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/testing.dev.js:1978:44)
            at Object.<anonymous> (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/testing.dev.js:1997:11)
            at /Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/testing.dev.js:1986:15
            at Zone.run (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:1243:24)
            at zoneBoundFn (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:1220:26)
            at lib$es6$promise$$internal$$tryCatch (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:468:17)
            at lib$es6$promise$$internal$$invokeCallback (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:480:18)
            at lib$es6$promise$$internal$$publish (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:451:12)
            at /Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:123:10
            at Zone.run (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:1243:24)
            at zoneBoundFn (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:1220:26)
            at MutationObserver.lib$es6$promise$asap$$flush (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:262:10)
Chrome 48.0.2564 (Mac OS X 10.10.5) MonthBoard Component should ... FAILED
        Failed: No provider for CalendarHelper! (MonthBoard -> CalendarHelper)
        Error: DI Exception
            at NoProviderError.BaseException [as constructor] (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:7351:21)
            at NoProviderError.AbstractProviderError [as constructor] (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:1649:14)
            at new NoProviderError (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:1673:14)
            at Injector._throwOrNull (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11547:15)
            at Injector._getByKeyDefault (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11592:19)
            at Injector._getByKey (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11540:21)
            at Injector._getByDependency (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11528:21)
            at Injector._instantiate (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11423:32)
            at Injector._instantiateProvider (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11395:21)
            at Injector._new (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11385:19)
            at InjectorInlineStrategy.instantiateProvider (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:11149:28)
            at ElementDirectiveInlineStrategy.init (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:9081:20)
            at new AppElement (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:8771:24)
            at HostViewFactory.viewFactory_HostMonthBoard0 [as viewFactory] (viewFactory_HostMonthBoard:73:29)
            at AppViewManager_.createRootHostView (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:6461:34)
            at /Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2.js:12356:46
            at Zone.run (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:1243:24)
            at zoneBoundFn (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:1220:26)
            at lib$es6$promise$$internal$$tryCatch (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:468:17)
            at lib$es6$promise$$internal$$invokeCallback (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:480:18)
            at lib$es6$promise$$internal$$publish (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:451:12)
            at /Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:123:10
            at Zone.run (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:1243:24)
            at zoneBoundFn (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:1220:26)
            at MutationObserver.lib$es6$promise$asap$$flush (/Users/vioffe/personal/angular-day-picker/node_modules/angular2/bundles/angular2-polyfills.js:262:10)
Chrome 48.0.2564 (Mac OS X 10.10.5): Executed 4 of 4 (2 FAILED) (0.097 secs / 0.093 secs)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions