Failed: No provider for Config! (Icon -> Config) in Ionic2 unit tests with karma and jasmin

Viewed 1170

I'm writing unit tests for an ionic2 app but I get following error when the template contains some ionic elements e.g.

<ion-icon > </ion-icon>

Failed: No provider for Config! (Icon -> Config)

Any idea?

3 Answers

I don't see how the previous solution works, because Config needs App, which needs Platform, which needs Keyboard which needs... maybe it is because you do not configure testing module asynchronously, which you should ;) simply try this:

import { IonicModule } from 'ionic-angular';
import { YourTestedComponent } from './pathto.component.ts'

beforeEach(async(() => {
  TestBed.configureTestingModule({
    imports: [ IonicModule.forRoot(this) ], // this loads ionic deps
    declarations: [ YourTestedComponent ],
  });
}));

This should fix it
Best of luck

I run into the same problem. This worked for me:

import { async, ComponentFixture, TestBed } from "@angular/core/testing";
import { Config, IonicModule } from "ionic-angular";

beforeEach(() => {
  TestBed.configureTestingModule({
    declarations: [
    ],
    imports: [
      IonicModule,
    ],
    providers: [
      Config,
    ],
  });

  fixture = TestBed.createComponent(MyComponent);
  component = fixture.componentInstance;
});
Related