diff --git a/src/app/components/navbar/navbar.spec.ts b/src/app/components/navbar/navbar.spec.ts index 62ea059..b32a9cb 100644 --- a/src/app/components/navbar/navbar.spec.ts +++ b/src/app/components/navbar/navbar.spec.ts @@ -1,21 +1,21 @@ import { -createComponentFromClass, -quickCreateComponent, -provideEmptyObjects + createComponentFromClass, + quickCreateComponent, + provideEmptyObjects } from "./../../../spec/helpers"; import { -Navbar + Navbar } from "./navbar"; import { -AUTH_EVENTS + AUTH_EVENTS } from "./../auth"; import { -User + User } from "./../../models/interfaces"; import { -Injectable, -Provider, -provide + Injectable, + Provider, + provide } from "ng-forward"; @@ -59,7 +59,6 @@ describe("Components", () => { }) ]; - quickCreateComponent({ providers: providers, template: "", @@ -72,5 +71,118 @@ describe("Components", () => { }); }); + it('It should open on click', (done: Function) => { + + let scope = { + eventCalledHook: () => { }, + $on: (eventName: string, func: Function) => { + console.log("ON Called!"); + this.eventCalledHook = func; + } + } + + let modalInstance = { + close: () => { + console.log("CLOSE Called!"); + } + } + + let $modal = { + open: (args: {}) => { + return modalInstance; + } + } + + let stateService = jasmine.createSpyObj("$state", ["go"]); + let providers = [ + new Provider('moment', { useValue: {} }), + new Provider('$modal', { useValue: $modal }), + new Provider('AuthService', { useValue: {} }), + new Provider('Session', { + useValue: { + currentUser: () => { return user } + } + }), + new Provider('$scope', { useValue: scope }), + new Provider('$state', { useValue: stateService }), + new Provider('AUTH_EVENTS', { useValue: { AUTH_EVENTS } }) + ]; + quickCreateComponent({ + providers: providers, + template: "", + directives: [Navbar] + }) + .then(fixture => { + console.log("entrou no .then") + let navbarComp: Navbar = fixture.debugElement.componentViewChildren[0].componentInstance; + spyOn($modal, "open"); + //navbarComp.activate(); + navbarComp.openLogin(); + expect($modal.open).toHaveBeenCalled(); + expect($modal.open).toHaveBeenCalledWith({ + templateUrl: 'app/components/auth/login.html', + controller: 'AuthController', + controllerAs: 'vm', + bindToController: true + }) + done(); + }) + }); + + + // it('closes the modal the login', (done: Function) => { + // let scope = { + // eventCalledHook: () => { }, + // $on: (eventName: string, func: Function) => { + // console.log("ON Called!"); + // this.eventCalledHook = func; + // } + // } + // + // let modalInstance = { + // close: () => { + // console.log("CLOSE Called!"); + // } + // } + // + // let $modal = { + // $open: (args: {}) => { + // return modalInstance; + // } + // } + // + // let stateService = jasmine.createSpyObj("$state", ["go"]); + // let providers = [ + // new Provider('moment', { useValue: {} }), + // new Provider('$modal', { useValue: $modal }), + // new Provider('AuthService', { useValue: {} }), + // new Provider('Session', { + // useValue: { + // currentUser: () => { return user } + // } + // }), + // new Provider('$scope', { useValue: scope }), + // new Provider('$state', { useValue: stateService }), + // new Provider('AUTH_EVENTS', { useValue: { AUTH_EVENTS } }) + // ]; + // spyOn(modalInstance, "close"); + // + // quickCreateComponent({ + // providers: providers, + // template: "", + // directives: [Navbar] + // }) + // .then(fixture => { + // let navbarComp: Navbar = fixture.debugElement.componentViewChildren[0].componentInstance; + // navbarComp.activate(); + // navbarComp.openLogin + // + // expect($modal.open).toHaveBeenCalledWith({}) + // scope.eventCalledHook(); + // expect(modalInstance.close).toHaveBeenCalled(); + // done(); + // }) + // //done(); + // }); }); -}); \ No newline at end of file +}); diff --git a/src/app/components/navbar/navbar.ts b/src/app/components/navbar/navbar.ts index e73cca1..3491db7 100644 --- a/src/app/components/navbar/navbar.ts +++ b/src/app/components/navbar/navbar.ts @@ -65,4 +65,4 @@ export class Navbar { } } -} \ No newline at end of file +} -- libgit2 0.21.2