import {Component} from 'ng-forward'; import {BlockComponent} from './block.component'; import * as helpers from "../../../spec/helpers"; import {ComponentTestHelper, createClass} from '../../../spec/component-test-helper'; import {DesignModeService} from '../../admin/layout-edit/designMode.service'; const htmlTemplate: string = ''; describe("Boxes Component", () => { let helper: ComponentTestHelper; beforeEach(() => { angular.mock.module("templates"); }); let properties = { block: { id: 1 }, owner: { id: 1, identifier: 'profile-name', type: 'Person' } }; beforeEach((done) => { let cls = createClass({ template: htmlTemplate, directives: [BlockComponent], properties: properties, providers: [ helpers.createProviderToValue('SessionService', helpers.mocks.sessionWithCurrentUser({})), helpers.createProviderToValue('AuthService', helpers.mocks.authService), helpers.createProviderToValue('$state', state), helpers.createProviderToValue('TranslatorService', translatorService), helpers.createProviderToValue('$uibModal', helpers.mocks.$modal), helpers.createProviderToValue('BlockService', blockService), helpers.createProviderToValue('NotificationService', helpers.mocks.notificationService), helpers.createProviderToValue('DesignModeService', helpers.mocks.designModeService) ] }); helper = new ComponentTestHelper(cls, done); }); let translatorService = jasmine.createSpyObj("translatorService", ["currentLanguage"]); let blockService = jasmine.createSpyObj("blockService", ["update"]); let state = jasmine.createSpyObj("state", ["current"]); state.current = { name: "" }; it("set isHomepage as false by default", () => { expect(helper.component.isHomepage).toBeFalsy(); }); it("set isHomepage as true when in profile home page", () => { state.current = { name: "main.profile.home" }; helper.component.ngOnInit(); expect(helper.component.isHomepage).toBeTruthy(); }); it("set isHomepage as true when in profile info page", () => { state.current = { name: "main.profile.info" }; helper.component.ngOnInit(); expect(helper.component.isHomepage).toBeTruthy(); }); it("set isHomepage as true when in profile page", () => { state.current = { name: "main.profile.page" }; state.params = { page: "/page" }; (helper.component.owner).homepage = '/page'; helper.component.ngOnInit(); expect(helper.component.isHomepage).toBeTruthy(); }); it("set isHomepage as true when in environment home page", () => { state.current = { name: "main.environment.home" }; helper.component.owner = {}; helper.component.ngOnInit(); expect(helper.component.isHomepage).toBeTruthy(); }); it("return true in canDisplay when no display option is setted", () => { helper.component.block = {}; expect(helper.component.canDisplay()).toEqual(true); }); it("return false in canDisplay for an invisible block", () => { helper.component.block = { settings: { display: "never" } }; expect(helper.component.canDisplay()).toEqual(false); }); it("return false in canDisplay with except_home_page in homepage", () => { helper.component.block = { settings: { display_user: "except_home_page" } }; expect(helper.component.canDisplay()).toEqual(false); }); it("return false in canDisplay with home_page_only outside homepage", () => { helper.component.block = { settings: { display_user: "home_page_only" } }; expect(helper.component.canDisplay()).toEqual(false); }); it("return true in canDisplay when display_user is all for logged user", () => { helper.component.block = { settings: { display_user: "all" } }; expect(helper.component.canDisplay()).toEqual(true); }); it("return true in canDisplay when display_user is all for not logged user", () => { helper.component.currentUser = null; helper.component.block = { settings: { display_user: "all" } }; expect(helper.component.canDisplay()).toEqual(true); }); it("return false in canDisplay when display_user is logged for not logged user", () => { helper.component.currentUser = null; helper.component.block = { settings: { display_user: "logged" } }; expect(helper.component.canDisplay()).toEqual(false); }); it("return false in canDisplay when display_user is not_logged for logged user", () => { helper.component.block = { settings: { display_user: "not_logged" } }; expect(helper.component.canDisplay()).toEqual(false); }); it("return false in canDisplay when current language is not equal to language in block settings", () => { helper.component['translatorService'].currentLanguage = jasmine.createSpy("currentLanguage").and.returnValue("pt"); helper.component.block = { settings: { language: "en" } }; expect(helper.component.canDisplay()).toEqual(false); }); it("return false in canDisplay when hide is true", () => { helper.component.block = { id: 1, hide: true }; expect(helper.component.canDisplay()).toEqual(false); }); it("return true in canDisplay when hide is not true", () => { helper.component.block = { id: 1, hide: false }; expect(helper.component.canDisplay()).toEqual(true); }); });