jasmine + angular ex 12

events

by ronapelbaum

HTML

<script src="https://jasmine.github.io/2.4/lib/jasmine.js"></script>
<script src="https://jasmine.github.io/2.4/lib/jasmine-html.js"></script>
<script src="https://jasmine.github.io/2.4/lib/boot.js"></script>
<link rel="stylesheet" href="https://jasmine.github.io/2.4/lib/jasmine.css">
<script src="https://code.angularjs.org/1.4.9/angular.js"></script>
<script src="https://code.angularjs.org/1.4.9/angular-mocks.js"></script>

JavaScript

//--------------BL------------
(function() {

  function MyController($rootScope) {
    var that = this;
    $rootScope.$on('greet', function() {
      that.data = 'Hello World';
    })
  }

  angular.module('MyModule', [])
    .controller('MyController', ['$rootScope', MyController]);
})();

//--------------specs------------
describe("MyController spec", function() {
  var $controller, $rootScope;
  beforeEach(module('MyModule'));

  beforeEach(inject(function(_$controller_, _$rootScope_) {
    $controller = _$controller_;
    $rootScope = _$rootScope_;
  }));

  it("greeting should change after event", function() {
    var ctrl = $controller("MyController");
    expect(ctrl.data).not.toBeDefined();
    $rootScope.$broadcast('greet');
    $rootScope.$apply();
    expect(ctrl.data).toBe('Hello World');
  });

});