@rr0/cms
Version:
RR0 Content Management System (CMS)
126 lines (125 loc) • 6.27 kB
JavaScript
import { RelativeTimeTextBuilder } from "./RelativeTimeTextBuilder.js";
import { cmsTestUtil } from "../../test/index.js";
import { describe, expect, test } from "@javarome/testscript";
import { TimeTextBuilder } from "./TimeTextBuilder.js";
describe("RelativeTimeTextBuilder", () => {
const timeTextBuilder = new TimeTextBuilder(cmsTestUtil.intlOptions);
const relativeTimeTextBuilder = new RelativeTimeTextBuilder(timeTextBuilder);
test("next year", () => {
{
const previousContext = cmsTestUtil.time.newHtmlContext("1/9/9/0/08", "");
previousContext.time.setYear(2003);
const context = previousContext.clone();
context.time.setYear(2004);
const s1 = relativeTimeTextBuilder.build(previousContext, context);
expect(s1).toBe("l'année suivante");
context.time.setMonth(6);
const s2 = relativeTimeTextBuilder.build(previousContext, context);
expect(s2).toBe("juin 2004");
}
});
test("change year", () => {
const previousContext = cmsTestUtil.time.newHtmlContext("1/9/9/0/08", "");
previousContext.time.setYear(1947);
const context = previousContext.clone();
context.time.setYear(1990);
context.time.setMonth(8);
context.time.setDayOfMonth(4);
const s = relativeTimeTextBuilder.build(previousContext, context);
expect(s).toBe("samedi 4 août 1990");
});
test("next month", () => {
{
const context1 = cmsTestUtil.time.newHtmlContext("1/9/9/0/08", "");
context1.time.setYear(2003);
{
context1.time.setMonth(2);
const next2months = context1.clone();
next2months.time.setMonth(context1.time.getMonth() + 2);
const s11 = relativeTimeTextBuilder.build(context1, next2months);
expect(s11).toBe("avril");
}
context1.time.setMonth(9);
const context2 = context1.clone();
context2.time.setMonth(context2.time.getMonth() + 1);
const s1 = relativeTimeTextBuilder.build(context1, context2);
expect(s1).toBe("le mois suivant");
const context3 = context2.clone();
context3.time.setDayOfMonth(23); // Resets day of month in context
const s2 = relativeTimeTextBuilder.build(context2, context3);
expect(s2).toBe("jeudi 23");
const context4 = context3.clone();
context4.time.setMonth(12);
const s3 = relativeTimeTextBuilder.build(context3, context4);
expect(s3).toBe("un mois plus tard");
const context5 = context4.clone();
context5.time.setMonth(1);
context5.time.setDayOfMonth(24);
const s4 = relativeTimeTextBuilder.build(context4, context5);
expect(s4).toBe("vendredi 24 janvier");
}
{
const context = cmsTestUtil.time.newHtmlContext("1/9/9/0/08", "<html lang='en'></html>");
context.time.setYear(2003);
context.time.setMonth(9);
const previousContext = context.clone();
context.time.setMonth(context.time.getMonth() + 1);
const s = relativeTimeTextBuilder.build(previousContext, context);
expect(s).toBe("the month after");
}
});
test("next day", () => {
{
const context = cmsTestUtil.time.newHtmlContext("1/9/9/0/08", "");
context.time.setYear(2003);
context.time.setMonth(9);
context.time.setDayOfMonth(23);
const previousContext = context.clone();
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("mardi 23 septembre 2003");
context.time.setDayOfMonth(24);
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("le lendemain");
}
{
const context = cmsTestUtil.time.newHtmlContext("1/9/9/0/08", "<html lang='en'></html>");
context.time.setYear(2003);
context.time.setMonth(9);
context.time.setDayOfMonth(23);
const previousContext = context.clone();
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("Tuesday, September 23, 2003");
context.time.setDayOfMonth(context.time.getDayOfMonth() + 1);
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("the day after");
}
});
describe("hour", () => {
test("next", () => {
{
let previousContext = cmsTestUtil.time.newHtmlContext("1/9/9/0/08", "");
const context = previousContext.clone();
context.time.setYear(2003);
context.time.setMonth(9);
context.time.setDayOfMonth(23);
context.time.setHour(16);
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("mardi 23 septembre 2003 à 16 h");
previousContext = context.clone();
context.time.setHour(17);
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("une heure plus tard");
context.time.setMinutes(43);
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("17:43");
}
{
let previousContext = cmsTestUtil.time.newHtmlContext("1/9/9/0/08", "<html lang='en'></html>");
const context = previousContext.clone();
context.time.setYear(2003);
context.time.setMonth(9);
context.time.setDayOfMonth(23);
context.time.setHour(16);
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("Tuesday, September 23, 2003 at 04 PM");
previousContext = context.clone();
context.time.setHour(17);
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("one hour later");
context.time.setMinutes(43);
expect(relativeTimeTextBuilder.build(previousContext, context)).toBe("05:43 PM");
}
});
});
});