Skip to content

Instantly share code, notes, and snippets.

@gdyrrahitis
Last active September 2, 2017 15:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gdyrrahitis/b3c83a153c51e02358aeb6baf1ad5195 to your computer and use it in GitHub Desktop.
Save gdyrrahitis/b3c83a153c51e02358aeb6baf1ad5195 to your computer and use it in GitHub Desktop.
import * as angular from "angular";
import { MenuModule } from "./menu.module";
import { MenuComponent } from "./menu.component";
describe("Menu", () => {
let createComponent: (name: string, locals: any, bindings: any) => IMenuComponent;
let $compile: ng.ICompileService;
let $state: ng.ui.IStateService;
let $rootScope: ng.IRootScopeService;
let $timeout: ng.ITimeoutService;
beforeEach(angular.mock.module(MenuModule));
beforeEach(angular.mock.module("./menu.html"));
beforeEach(angular.mock.module(MenuModule, ($stateProvider: ng.ui.IStateProvider,
$urlRouterProvider: ng.ui.IUrlRouterProvider, $locationProvider: ng.ILocationProvider) => {
$locationProvider.html5Mode({
enabled: true,
requireBase: false
}).hashPrefix("!");
$stateProvider
.state("home", { url: "/home" })
.state("help", { url: "/help" });
$urlRouterProvider
.when("/", "/home")
.otherwise("/home");
}));
beforeEach(inject((_$componentController_: ng.IComponentControllerService,
_$compile_: ng.ICompileService, _$timeout_,
_$state_: ng.ui.IStateService, _$rootScope_: ng.IRootScopeService) => {
createComponent = (name: string, locals: any, bindings: any) => <IMenuComponent>_$componentController_(name, locals, bindings);
$compile = _$compile_;
$rootScope = _$rootScope_;
$state = _$state_;
$timeout = _$timeout_;
}));
describe("Component", () => {
describe("navigateToHome", () => {
it("should redirect to home by clicking on menu item", () => {
// arrange
let element = angular.element("<pcard-menu></pcard-menu>");
let template = $compile(element)($rootScope);
$rootScope.$digest();
let menuItem = angular.element(template[0].querySelector("a.anchor-home"));
// act
menuItem.triggerHandler("click");
$timeout.flush();
$rootScope.$digest();
// assert
expect($state.current.name).toBe("home");
expect($state.href($state.current.name)).toBe("/home");
});
});
describe("navigateToHelp", () => {
it("should redirect to help by clicking on menu item", () => {
// arrange
let element = angular.element("<pcard-menu></pcard-menu>");
let template = $compile(element)($rootScope);
$rootScope.$digest();
let menuItem = angular.element(template[0].querySelector("a.anchor-help"));
// act
menuItem.triggerHandler("click");
$timeout.flush();
$rootScope.$digest();
// assert
expect($state.current.name).toBe("help");
expect($state.href($state.current.name)).toBe("/help");
});
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment