Trouble injecting ionic services in jasmine?

Hi All,

I am facing issue while injecting PopOverController service in one of my jasmine test case.

Component code:
> @Injectable()

export class ChoiceList {
  constructor(private popoverController : PopoverController) {
  }
 
 presentPopover(ev: any, params: any, cb?:any) {
    let popover = this.popoverController.create(ChoiceListComp, 
                         {options:params,cb: cb,},
                         {cssClass:choicelist"}
                      );
   return popover.present({
      ev: ev
    });
  }
}

And in my test case:

All required modules imported

>   export function run() {
>   let choiceList: ChoiceList;
>   beforeEachProviders(() => [ChoiceList,PopoverController]);//{provide: PopoverController, useClass:{} }   
>   describe('ChoiceList', () => {
>        describe('create', () => {

>         it('should do something', inject([ChoiceList], (choiceList) => {
>  
>             let mainpopover = choiceList.presentPopover({},{
>                    choices:["a","b","c"],
>                    title:'test',
>                    buttons: ["ok", "cancel"]
>                 }, (data)=>console.log(data));
>         }
>     ));
>     });
>     
>     });
> }

Whenever I include PopOverController, the test case returns an error. (Sorry no error logs from karma).
I am I importing the ionic service right way in my test case.
I also tried creating a new instance of PopOverController using traditional JS way (using β€˜new’) but no help.

1 Like