import Vue from 'vue'; import { addMessages } from '../../../../tests/helpers/lang'; import { DATE_TIME_NAME } from '../../filter-names'; import { dateTimeFilter } from './date-time'; describe(DATE_TIME_NAME, () => { beforeEach(() => { addMessages(Vue, [ 'filters/date/date/date.lang.en.json', 'filters/date/time/time.lang.en.json', 'filters/date/date-time/date-time.lang.en.json' ]); }); it(`should return long formatted date time`, () => { const date: Date = new Date(2018, 8, 27, 17, 5); date.toLocaleDateString = jest.fn(() => '27 septembre'); expect(dateTimeFilter(date)).toBe(`27 septembre à ${new Intl.DateTimeFormat('', { hour: 'numeric', minute: 'numeric' }).format(date)}`); }); it(`should return long formatted date time with sup tags`, () => { const date: Date = new Date(2018, 9, 1, 7, 0); date.toLocaleDateString = jest.fn(() => '1 octobre'); jest.spyOn(Vue.prototype.$i18n, 'getCurrentLocale').mockReturnValue('fr-CA'); expect(dateTimeFilter(date)).toBe(`1er octobre à ${new Intl.DateTimeFormat('', { hour: 'numeric' }).format(date)}`); }); it(`should return short formatted date time`, () => { const date: Date = new Date(2018, 8, 27, 17, 5); date.toLocaleDateString = jest.fn(() => '27 sept.'); expect(dateTimeFilter(date, true)).toBe(`27 sept. ${new Intl.DateTimeFormat('', { hour: 'numeric', minute: 'numeric' }).format(date)}`); }); it(`should return short formatted date time with sup tags`, () => { const date: Date = new Date(2018, 9, 1, 7, 0); date.toLocaleDateString = jest.fn(() => '1 oct.'); jest.spyOn(Vue.prototype.$i18n, 'getCurrentLocale').mockReturnValue('fr-CA'); expect(dateTimeFilter(date, true)).toBe(`1er oct. ${new Intl.DateTimeFormat('', { hour: 'numeric' }).format(date)}`); }); });