Unit testing ionic modules like ionic popover


#1

I have the following function in my controller:

function setupMenuPopover() {
      $ionicPlatform.ready(function () {
        $ionicPopover.fromTemplateUrl('views/menu-popover.html', {
          scope: $scope
        }).then(function (popover) {
          vm.menuPopover = popover;
        });
      });
    }

How can I test this with karma?

Currently I have something like:

it('this.setupMenuPopover should setup the menu popover', inject(function(_$ionicPopover_){
      var popup = spyOn(_$ionicPopover_, 'fromTemplateUrl').and.callThrough();

      HomeController.setupMenuPopover();
        
      expect(popup).toHaveBeenCalled();
      //expect(HomeController.menuPopover).not.toBeNull() <-- returns false, while it should be true.
    }));

Thanks in advance!


#2

@Brock01 Did you find any solution? Even I am trying to write test case for popover.


#3

This is old but should give you a start:


#4

Thanks. But I want test case for popover.

This is my code

$ionicPopover.fromTemplateUrl('app/contextMenu.html', {
      scope: $scope
    }).then(function (popover) {
      $scope.popover = popover;
    });
    $scope.openPopover = function ($event) {
      $scope.popover.show($event);
    };
    $scope.closePopover = function ($event) {
      $scope.popover.hide($event);
    };
    $scope.$on('$destroy', function () {
     $scope.popover.remove();
    });