jasmine + angular ex 8

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() {

  var LastNameService = function() {
    console.log("LastNameService creation - start", Date.now());
    for (var i = 0; i < 10000; i++);
    console.log("LastNameService creation - end", Date.now());

    this.getLastName = function(firstName) {
      switch (firstName) {
        case "Bob":
          return "Marley";
        case "Phill":
          return "Collins";
      }
    }
  };

  var Greeter = function(dataService) {
    function greet(name) {
      return "Hello " + name + " " + dataService.getLastName(name);
    }
    this.greet = greet;
  };

  //OtherModule
  angular.module('OtherModule', [])
    .service('LastNameService', LastNameService);

  //MyModule
  angular.module('MyModule', ['OtherModule'])
    .service('GreeterService', ['LastNameService', Greeter]);
})();


//--------------specs------------
describe("MyController test suite", function() {
  var GreeterService;
  beforeEach(module('MyModule'));

  beforeEach(inject(function(_GreeterService_) {
    GreeterService = _GreeterService_;
  }));

  it("should greet corretly", function() {
    expect(GreeterService.greet('Bob')).toBe('Hello Bob Dylen');
  });

});