Advertisement
Guest User

Untitled

a guest
Apr 19th, 2016
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /// <reference path="../../../../typings/main/ambient/jasmine/index.d.ts" />
  2.  
  3. import {
  4.   it,
  5.   describe,
  6.   expect,
  7.   inject,
  8.   beforeEach,
  9.   beforeEachProviders,
  10.   MockApplicationRef
  11. } from 'angular2/testing';
  12.  
  13. import {
  14.   RouteRegistry,
  15.   SpyLocation,
  16.   RootRouter,
  17.   Router,
  18.   RouteParams,
  19.   ROUTER_PROVIDERS,
  20.   APP_BASE_HREF,
  21.   ROUTER_PRIMARY_COMPONENT
  22. } from 'angular2/router';
  23.  
  24. import {
  25.   ApplicationRef,
  26.   provide
  27. } from 'angular2/core';
  28.  
  29. import { MockApplicationRef } from 'angular2/src/mock/mock_application_ref';
  30.  
  31. import {AppComponent} from '../../app.component';
  32. import {DetailComponent} from '../../components/index';
  33. import {Contact} from '../../interfaces/index';
  34. import {ContactsMock} from '../../mocks/index';
  35. import {ContactService} from '../../services/index';
  36.  
  37. export function provideMockRouter():any[] {
  38.     return [
  39.         RouteRegistry,
  40.         provide(Location, {useClass: SpyLocation}),
  41.         provide(ROUTER_PRIMARY_COMPONENT, {useValue: AppComponent}),
  42.         provide(Router, {useClass: RootRouter}),
  43.     ];
  44. }
  45.  
  46. let fillContacts = (service: ContactService) => {
  47.   service.createContact(ContactsMock[0]);
  48.   service.createContact(ContactsMock[1]);
  49.   service.createContact(ContactsMock[2]);
  50. }
  51.  
  52. describe('Detail Component', () => {
  53.   let detail: DetailComponent;
  54.   let contactService: ContactService;
  55.   let routeParams: RouteParams;
  56.   let router: Router;
  57.  
  58.   beforeEachProviders(() => [
  59.     provide(ContactService, { useClass: ContactService }),
  60.     provide(ApplicationRef, { useClass: MockApplicationRef }),
  61.     provide(RouteParams, { useValue: new RouteParams({ contactId: '1' }) }),
  62.     provideMockRouter()
  63.   ]);
  64.  
  65.   // beforeEachProviders(() => [ContactService, Router]);
  66.  
  67.   beforeEach(inject([ContactService, Router, RouteParams], (_contactService: ContactService, _router: Router, _routeParams: RouteParams) => {
  68.     console.log(_router);
  69.     contactService = _contactService;
  70.     router = _router;
  71.     routeParams = _routeParams;
  72.     detail = new DetailComponent(contactService, routeParams, router);
  73.   }));
  74.  
  75.   it('creates a new contact', (done) => {
  76.     spyOn(router, 'navigate').and.callThrough();
  77.     detail.contact = ContactsMock[0];
  78.     detail.createContact();
  79.     contactService.getContacts().then(data => {
  80.       expect(data.length).toEqual(1);
  81.  
  82.       detail.contact = ContactsMock[1];
  83.       detail.createContact();
  84.  
  85.       contactService.getContacts().then(data2 => {
  86.         expect(data2.length).toEqual(2);
  87.  
  88.         done();
  89.       });
  90.     });
  91.  
  92.   });
  93.  
  94.   it('should modify a contact', (done) => {
  95.     spyOn(router, 'navigate').and.callThrough();
  96.     console.log(detail.router);
  97.     detail.contact = ContactsMock[0];
  98.     detail.createContact();
  99.     // await detail.call();
  100.     expect(router.navigate).toHaveBeenCalledWith(['List']);
  101.     expect(detail.contact.email).toEqual("juanlucha@gmail.com");
  102.  
  103.     detail.contact.email = "pepitoperez@gmail.com";
  104.     detail.modifyContact();
  105.     // await detail.call();
  106.     expect(router.navigate).toHaveBeenCalledWith(['List']);
  107.     expect(detail.contact.email).toEqual("pepitoperez@gmail.com");
  108.  
  109.     detail.contact = ContactsMock[1];
  110.     detail.createContact();
  111.     // await detail.call();
  112.     expect(router.navigate).toHaveBeenCalledWith(['List']);
  113.     expect(detail.contact.email).toEqual("pacocabrero@gmail.com");
  114.  
  115.     contactService.getContact(ContactsMock[0].id).then(data => {
  116.       expect(data.email).toEqual("pepitoperez@gmail.com");
  117.       done();
  118.     });
  119.   });
  120.  
  121.   it('should delete a contact', () => {
  122.     detail.contact = ContactsMock[2];
  123.     detail.createContact();
  124.     expect(detail.contact.email).toEqual("pedromartos@gmail.com");
  125.     contactService.getContacts().then(data => {
  126.       expect(data.length).toEqual(1);
  127.  
  128.       detail.deleteContact();
  129.       contactService.getContacts().then(data2 => {
  130.         expect(data2.length).toEqual(0);
  131.       });
  132.     });
  133.  
  134.   });
  135. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement