Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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';
like image 515
NobbyNobbs Avatar asked Mar 24 '17 07:03

NobbyNobbs


2 Answers

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)

like image 63
snorkpete Avatar answered Sep 22 '22 03:09

snorkpete


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

like image 26
sebaferreras Avatar answered Sep 23 '22 03:09

sebaferreras