NobbyNobbs
NobbyNobbs

Reputation: 1434

Testing with TestBed: no Provider for StatusBar error

I've read the article about testing Ionic2 projects with TestBed and I've got the trouble when I'm trying to repeat example from article in my environment. When I try to start tests on Step 3 I have the error "No provider for StatusBar".

Probably it's a stupid question, but can somebody suppose why it happens?

StatusBar is included (imported) in my app.component.ts file.

import { StatusBar } from '@ionic-native/status-bar';

Upvotes: 7

Views: 5081

Answers (2)

snorkpete
snorkpete

Reputation: 14564

When using the TestBed, you are creating an entirely new @NgModule solely for testing. As such, you have to configure that test module to import all its dependencies - including, in your case, the status bar.

So, the same way you import the Status Bar in your main application (either directly or by importing its containing NgModule), you have to do the same for your test module.

TestBed.configureTestingModule({
  ......,
  providers: [
    StatusBar
  ]
})

or

 TestBed.configureTestingModule({
   imports: [
      ModuleContainingStatusBar
   ]     
})

(sorry, not familiar with Ionic itself so don't know how you import StatusBar for use)

Upvotes: 11

sebaferreras
sebaferreras

Reputation: 44659

Try by adding it to the providers array of your @NgModule

Upvotes: 2

Related Questions