import {CommentParagraphArticleContentHotspotComponent} from './article-content.component'; import {ComponentTestHelper, createClass} from './../../../../spec/component-test-helper'; const htmlTemplate: string = ''; describe("Components", () => { describe("Article Content Hotspot Component", () => { let helper: ComponentTestHelper; beforeEach(angular.mock.module("templates")); beforeEach((done) => { let properties = { article: {} }; let cls = createClass({ template: htmlTemplate, directives: [CommentParagraphArticleContentHotspotComponent], properties: properties }); helper = new ComponentTestHelper(cls, done); }); it("return false in isDiscussion when no type was specified", () => { expect(helper.component.isDiscussion()).toBeFalsy(); }); it("return false in isDiscussion when other type was specified", () => { helper.changeProperties({ article: { type: "TextArticle" } }); expect(helper.component.isDiscussion()).toBeFalsy(); }); it("return true in isDiscussion when discussion type was specified", () => { helper.changeProperties({ article: { type: "CommentParagraphPlugin::Discussion" } }); expect(helper.component.isDiscussion()).toBeTruthy(); }); it("return true in notOpened when start date is after today", () => { let date = new Date(); date.setDate(date.getDate() + 1); helper.changeProperties({ article: { start_date: date.toISOString() } }); expect(helper.component.notOpened()).toBeTruthy(); expect(helper.component.available()).toBeFalsy(); expect(helper.component.closed()).toBeFalsy(); }); it("return false in notOpened when start date is before today", () => { let date = new Date(); date.setDate(date.getDate() - 1); helper.changeProperties({ article: { start_date: date.toISOString() } }); expect(helper.component.notOpened()).toBeFalsy(); }); it("return false in notOpened when start date is null", () => { helper.changeProperties({ article: { start_date: null } }); expect(helper.component.notOpened()).toBeFalsy(); }); it("return true in closed when end date is before today", () => { let date = new Date(); date.setDate(date.getDate() - 1); helper.changeProperties({ article: { end_date: date.toISOString() } }); expect(helper.component.closed()).toBeTruthy(); expect(helper.component.available()).toBeFalsy(); expect(helper.component.notOpened()).toBeFalsy(); }); it("return false in closed when start date is after today", () => { let date = new Date(); date.setDate(date.getDate() + 1); helper.changeProperties({ article: { end_date: date.toISOString() } }); expect(helper.component.closed()).toBeFalsy(); }); it("return false in closed when end date is null", () => { helper.changeProperties({ article: { start_date: null } }); expect(helper.component.closed()).toBeFalsy(); }); it("return true in available when start date is before today and end date is after", () => { let date = new Date(); date.setDate(date.getDate() - 1); let startDate = date.toISOString(); date.setDate(date.getDate() + 3); let endDate = date.toISOString(); helper.changeProperties({ article: { start_date: startDate, end_date: endDate } }); expect(helper.component.available()).toBeTruthy(); expect(helper.component.closed()).toBeFalsy(); expect(helper.component.notOpened()).toBeFalsy(); }); it("return true in available when start date is before today and end date is null", () => { let date = new Date(); date.setDate(date.getDate() - 1); let startDate = date.toISOString(); helper.changeProperties({ article: { start_date: startDate, end_date: null } }); expect(helper.component.available()).toBeTruthy(); expect(helper.component.closed()).toBeFalsy(); expect(helper.component.notOpened()).toBeFalsy(); }); it("return true in available when start date is null and end date is after today", () => { let date = new Date(); date.setDate(date.getDate() + 3); let endDate = date.toISOString(); helper.changeProperties({ article: { start_date: null, end_date: endDate } }); expect(helper.component.available()).toBeTruthy(); expect(helper.component.closed()).toBeFalsy(); expect(helper.component.notOpened()).toBeFalsy(); }); }); });