diff --git a/app/assets/javascripts/discourse/tests/unit/models/theme-test.js b/app/assets/javascripts/discourse/tests/unit/models/theme-test.js
index 1d3f2e49fcf..c01ecd59db5 100644
--- a/app/assets/javascripts/discourse/tests/unit/models/theme-test.js
+++ b/app/assets/javascripts/discourse/tests/unit/models/theme-test.js
@@ -1,22 +1,26 @@
import { module, test } from "qunit";
import Theme from "admin/models/theme";
-module("Unit | Model | theme");
+module("Unit | Model | theme", function () {
+ test("can add an upload correctly", function (assert) {
+ let theme = Theme.create();
-test("can add an upload correctly", function (assert) {
- let theme = Theme.create();
+ assert.strictEqual(
+ theme.get("uploads.length"),
+ 0,
+ "uploads should be an empty array"
+ );
- assert.strictEqual(
- theme.get("uploads.length"),
- 0,
- "uploads should be an empty array"
- );
+ theme.setField("common", "bob", "", 999, 2);
+ let fields = theme.get("theme_fields");
+ assert.strictEqual(fields.length, 1, "expecting 1 theme field");
+ assert.strictEqual(
+ fields[0].upload_id,
+ 999,
+ "expecting upload id to be set"
+ );
+ assert.strictEqual(fields[0].type_id, 2, "expecting type id to be set");
- theme.setField("common", "bob", "", 999, 2);
- let fields = theme.get("theme_fields");
- assert.strictEqual(fields.length, 1, "expecting 1 theme field");
- assert.strictEqual(fields[0].upload_id, 999, "expecting upload id to be set");
- assert.strictEqual(fields[0].type_id, 2, "expecting type id to be set");
-
- assert.strictEqual(theme.get("uploads.length"), 1, "expecting an upload");
+ assert.strictEqual(theme.get("uploads.length"), 1, "expecting an upload");
+ });
});
diff --git a/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js b/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js
index d8a9ff3687c..a436ce76df2 100644
--- a/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js
+++ b/plugins/discourse-details/test/javascripts/lib/details-cooked-test.js
@@ -1,8 +1,6 @@
import PrettyText, { buildOptions } from "pretty-text/pretty-text";
import { module, test } from "qunit";
-module("lib:details-cooked-test");
-
const defaultOpts = buildOptions({
siteSettings: {
enable_emoji: true,
@@ -14,26 +12,28 @@ const defaultOpts = buildOptions({
getURL: (url) => url,
});
-test("details", function (assert) {
- const cooked = (input, expected, text) => {
- assert.strictEqual(
- new PrettyText(defaultOpts).cook(input),
- expected.replace(/\/>/g, ">"),
- text
+module("lib:details-cooked-test", function () {
+ test("details", function (assert) {
+ const cooked = (input, expected, text) => {
+ assert.strictEqual(
+ new PrettyText(defaultOpts).cook(input),
+ expected.replace(/\/>/g, ">"),
+ text
+ );
+ };
+ cooked(
+ `Info
coucou `,
+ `Info
coucou `,
+ "manual HTML for details"
);
- };
- cooked(
- `Info
coucou `,
- `Info
coucou `,
- "manual HTML for details"
- );
- cooked(
- "[details=testing]\ntest\n[/details]",
- `
+ cooked(
+ "[details=testing]\ntest\n[/details]",
+ `
testing
test
`
- );
+ );
+ });
});
diff --git a/plugins/discourse-local-dates/test/javascripts/lib/date-with-zone-helper-test.js b/plugins/discourse-local-dates/test/javascripts/lib/date-with-zone-helper-test.js
index 7257cd88627..39f44834865 100644
--- a/plugins/discourse-local-dates/test/javascripts/lib/date-with-zone-helper-test.js
+++ b/plugins/discourse-local-dates/test/javascripts/lib/date-with-zone-helper-test.js
@@ -4,8 +4,6 @@ import { module, test } from "qunit";
const PARIS = "Europe/Paris";
const SYDNEY = "Australia/Sydney";
-module("lib:date-with-zone-helper");
-
function buildDateHelper(params = {}) {
return new DateWithZoneHelper({
year: params.year || 2020,
@@ -18,152 +16,154 @@ function buildDateHelper(params = {}) {
});
}
-test("#format", function (assert) {
- let date = buildDateHelper({
- day: 15,
- month: 2,
- hour: 15,
- minute: 36,
- timezone: PARIS,
+module("lib:date-with-zone-helper", function () {
+ test("#format", function (assert) {
+ let date = buildDateHelper({
+ day: 15,
+ month: 2,
+ hour: 15,
+ minute: 36,
+ timezone: PARIS,
+ });
+ assert.strictEqual(date.format(), "2020-03-15T15:36:00.000+01:00");
+ });
+
+ test("#unitRepetitionsBetweenDates", function (assert) {
+ let date;
+
+ date = buildDateHelper({
+ day: 15,
+ month: 1,
+ hour: 15,
+ minute: 36,
+ timezone: PARIS,
+ });
+ assert.strictEqual(
+ date.unitRepetitionsBetweenDates(
+ "1.hour",
+ moment.tz("2020-02-15 15:36", SYDNEY)
+ ),
+ 10,
+ "it correctly finds difference between timezones"
+ );
+
+ date = buildDateHelper({
+ day: 15,
+ month: 1,
+ hour: 15,
+ minute: 36,
+ timezone: PARIS,
+ });
+ assert.strictEqual(
+ date.unitRepetitionsBetweenDates(
+ "1.minute",
+ moment.tz("2020-02-15 15:36", PARIS)
+ ),
+ 0,
+ "it correctly finds no difference"
+ );
+
+ date = buildDateHelper({
+ day: 15,
+ month: 1,
+ hour: 15,
+ minute: 36,
+ timezone: PARIS,
+ });
+ assert.strictEqual(
+ date.unitRepetitionsBetweenDates(
+ "1.minute",
+ moment.tz("2020-02-15 15:37", PARIS)
+ ),
+ 1,
+ "it correctly finds no difference"
+ );
+
+ date = buildDateHelper({
+ day: 15,
+ month: 1,
+ hour: 15,
+ minute: 36,
+ timezone: PARIS,
+ });
+ assert.strictEqual(
+ date.unitRepetitionsBetweenDates(
+ "2.minutes",
+ moment.tz("2020-02-15 15:41", PARIS)
+ ),
+ 6,
+ "it correctly finds difference with a multiplicator"
+ );
+ });
+
+ test("#add", function (assert) {
+ let date;
+ let futureLocalDate;
+
+ date = buildDateHelper({
+ day: 19,
+ month: 2,
+ hour: 15,
+ minute: 36,
+ timezone: PARIS,
+ });
+
+ assert.notOk(date.isDST());
+ futureLocalDate = date.add(8, "months");
+ assert.notOk(futureLocalDate.isDST());
+ assert.strictEqual(
+ futureLocalDate.format(),
+ "2020-11-19T15:36:00.000+01:00",
+ "it correctly adds from a !isDST date to a !isDST date"
+ );
+
+ date = buildDateHelper({
+ day: 25,
+ month: 3,
+ hour: 15,
+ minute: 36,
+ timezone: PARIS,
+ });
+ assert.ok(date.isDST());
+ futureLocalDate = date.add(1, "year");
+ assert.ok(futureLocalDate.isDST());
+ assert.strictEqual(
+ futureLocalDate.format(),
+ "2021-04-25T15:36:00.000+02:00",
+ "it correctly adds from a isDST date to a isDST date"
+ );
+
+ date = buildDateHelper({
+ day: 25,
+ month: 2,
+ hour: 15,
+ minute: 36,
+ timezone: PARIS,
+ });
+ assert.notOk(date.isDST());
+ futureLocalDate = date.add(1, "week");
+ assert.ok(futureLocalDate.isDST());
+ assert.strictEqual(
+ futureLocalDate.format(),
+ "2020-04-01T15:36:00.000+02:00",
+ "it correctly adds from a !isDST date to a isDST date"
+ );
+
+ date = buildDateHelper({
+ day: 1,
+ month: 3,
+ hour: 15,
+ minute: 36,
+ timezone: PARIS,
+ });
+
+ assert.ok(date.isDST());
+ futureLocalDate = date.add(8, "months");
+ assert.notOk(futureLocalDate.isDST());
+ assert.strictEqual(
+ futureLocalDate.format(),
+ "2020-12-01T15:36:00.000+01:00",
+ "it correctly adds from a isDST date to a !isDST date"
+ );
});
- assert.strictEqual(date.format(), "2020-03-15T15:36:00.000+01:00");
-});
-
-test("#unitRepetitionsBetweenDates", function (assert) {
- let date;
-
- date = buildDateHelper({
- day: 15,
- month: 1,
- hour: 15,
- minute: 36,
- timezone: PARIS,
- });
- assert.strictEqual(
- date.unitRepetitionsBetweenDates(
- "1.hour",
- moment.tz("2020-02-15 15:36", SYDNEY)
- ),
- 10,
- "it correctly finds difference between timezones"
- );
-
- date = buildDateHelper({
- day: 15,
- month: 1,
- hour: 15,
- minute: 36,
- timezone: PARIS,
- });
- assert.strictEqual(
- date.unitRepetitionsBetweenDates(
- "1.minute",
- moment.tz("2020-02-15 15:36", PARIS)
- ),
- 0,
- "it correctly finds no difference"
- );
-
- date = buildDateHelper({
- day: 15,
- month: 1,
- hour: 15,
- minute: 36,
- timezone: PARIS,
- });
- assert.strictEqual(
- date.unitRepetitionsBetweenDates(
- "1.minute",
- moment.tz("2020-02-15 15:37", PARIS)
- ),
- 1,
- "it correctly finds no difference"
- );
-
- date = buildDateHelper({
- day: 15,
- month: 1,
- hour: 15,
- minute: 36,
- timezone: PARIS,
- });
- assert.strictEqual(
- date.unitRepetitionsBetweenDates(
- "2.minutes",
- moment.tz("2020-02-15 15:41", PARIS)
- ),
- 6,
- "it correctly finds difference with a multiplicator"
- );
-});
-
-test("#add", function (assert) {
- let date;
- let futureLocalDate;
-
- date = buildDateHelper({
- day: 19,
- month: 2,
- hour: 15,
- minute: 36,
- timezone: PARIS,
- });
-
- assert.notOk(date.isDST());
- futureLocalDate = date.add(8, "months");
- assert.notOk(futureLocalDate.isDST());
- assert.strictEqual(
- futureLocalDate.format(),
- "2020-11-19T15:36:00.000+01:00",
- "it correctly adds from a !isDST date to a !isDST date"
- );
-
- date = buildDateHelper({
- day: 25,
- month: 3,
- hour: 15,
- minute: 36,
- timezone: PARIS,
- });
- assert.ok(date.isDST());
- futureLocalDate = date.add(1, "year");
- assert.ok(futureLocalDate.isDST());
- assert.strictEqual(
- futureLocalDate.format(),
- "2021-04-25T15:36:00.000+02:00",
- "it correctly adds from a isDST date to a isDST date"
- );
-
- date = buildDateHelper({
- day: 25,
- month: 2,
- hour: 15,
- minute: 36,
- timezone: PARIS,
- });
- assert.notOk(date.isDST());
- futureLocalDate = date.add(1, "week");
- assert.ok(futureLocalDate.isDST());
- assert.strictEqual(
- futureLocalDate.format(),
- "2020-04-01T15:36:00.000+02:00",
- "it correctly adds from a !isDST date to a isDST date"
- );
-
- date = buildDateHelper({
- day: 1,
- month: 3,
- hour: 15,
- minute: 36,
- timezone: PARIS,
- });
-
- assert.ok(date.isDST());
- futureLocalDate = date.add(8, "months");
- assert.notOk(futureLocalDate.isDST());
- assert.strictEqual(
- futureLocalDate.format(),
- "2020-12-01T15:36:00.000+01:00",
- "it correctly adds from a isDST date to a !isDST date"
- );
});
diff --git a/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js b/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js
index 86414743b20..a95bb74fa5a 100644
--- a/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js
+++ b/plugins/discourse-local-dates/test/javascripts/lib/local-date-builder-test.js
@@ -11,8 +11,6 @@ const PARIS = "Europe/Paris";
const LAGOS = "Africa/Lagos";
const LONDON = "Europe/London";
-module("lib:local-date-builder");
-
function freezeTime({ date, timezone }, cb) {
date = date || "2020-01-22 10:34";
const newTimezone = timezone || PARIS;
@@ -50,7 +48,7 @@ QUnit.assert.buildsCorrectDate = function (options, expected, message) {
this.test.assert.strictEqual(
localDateBuilder.build().formated,
expected.formated,
- message || "it formates the date correctly"
+ message || "it formats the date correctly"
);
}
@@ -58,535 +56,537 @@ QUnit.assert.buildsCorrectDate = function (options, expected, message) {
this.test.assert.deepEqual(
localDateBuilder.build().previews,
expected.previews,
- message || "it formates the previews correctly"
+ message || "it formats the previews correctly"
);
}
};
-test("date", function (assert) {
- freezeTime({ date: "2020-03-11" }, () => {
+module("lib:local-date-builder", function () {
+ test("date", function (assert) {
+ freezeTime({ date: "2020-03-11" }, () => {
+ assert.buildsCorrectDate(
+ { date: "2020-03-22", timezone: PARIS },
+ { formated: "March 22, 2020" },
+ "it displays the date without time"
+ );
+ });
+ });
+
+ test("date and time", function (assert) {
assert.buildsCorrectDate(
- { date: "2020-03-22", timezone: PARIS },
- { formated: "March 22, 2020" },
- "it displays the date without time"
- );
- });
-});
-
-test("date and time", function (assert) {
- assert.buildsCorrectDate(
- { date: "2020-04-11", time: "11:00" },
- { formated: "April 11, 2020 1:00 PM" },
- "it displays the date with time"
- );
-
- assert.buildsCorrectDate(
- { date: "2020-04-11", time: "11:05:12", format: "LTS" },
- { formated: "1:05:12 PM" },
- "it displays full time (hours, minutes, seconds)"
- );
-});
-
-test("option[format]", function (assert) {
- freezeTime({ date: "2020-03-11" }, () => {
- assert.buildsCorrectDate(
- { format: "YYYY" },
- { formated: "2020 (UTC)" },
- "it uses custom format"
- );
- });
-});
-
-test("option[displayedTimezone]", function (assert) {
- freezeTime({}, () => {
- assert.buildsCorrectDate(
- { displayedTimezone: SYDNEY },
- { formated: "March 22, 2020 (Sydney)" },
- "it displays the timezone if the timezone is different from the date"
- );
- });
-
- freezeTime({}, () => {
- assert.buildsCorrectDate(
- { displayedTimezone: PARIS, timezone: PARIS },
- { formated: "March 22, 2020" },
- "it doesn't display the timezone if the timezone is the same than the date"
- );
- });
-
- freezeTime({}, () => {
- assert.buildsCorrectDate(
- { timezone: UTC, displayedTimezone: UTC },
- { formated: "March 22, 2020 (UTC)" },
- "it replaces `Etc/`"
- );
- });
-
- freezeTime({}, () => {
- assert.buildsCorrectDate(
- { timezone: LOS_ANGELES, displayedTimezone: LOS_ANGELES },
- { formated: "March 22, 2020 (Los Angeles)" },
- "it removes prefix and replaces `_`"
- );
- });
-});
-
-test("option[timezone]", function (assert) {
- freezeTime({}, () => {
- assert.buildsCorrectDate(
- { timezone: SYDNEY, displayedTimezone: PARIS },
- { formated: "March 21, 2020" },
- "it correctly parses a date with the given timezone context"
- );
- });
-});
-
-test("option[recurring]", function (assert) {
- freezeTime({ date: "2020-04-06 06:00", timezone: LAGOS }, () => {
- assert.buildsCorrectDate(
- {
- date: "2019-11-25",
- time: "11:00",
- timezone: PARIS,
- displayedTimezone: LAGOS,
- recurring: "1.weeks",
- },
- {
- formated: "April 6, 2020 10:00 AM (Lagos)",
- },
- "it correctly formats a recurring date starting from a !isDST timezone to a isDST timezone date when displayed to a user using a timezone with no DST"
- );
- });
-
- freezeTime({ date: "2020-04-06 01:00", timezone: SYDNEY }, () => {
- assert.buildsCorrectDate(
- {
- date: "2020-03-09",
- time: "02:00",
- timezone: UTC,
- recurring: "1.weeks",
- calendar: false,
- displayedTimezone: SYDNEY,
- },
- {
- formated: "April 6, 2020 12:00 PM (Sydney)",
- },
- "it correctly formats a recurring date spanning over weeks"
- );
- });
-
- freezeTime({ date: "2020-04-07 22:00" }, () => {
- assert.buildsCorrectDate(
- {
- date: "2019-11-25",
- time: "11:00",
- recurring: "1.weeks",
- timezone: PARIS,
- },
- {
- formated: "April 13, 2020 11:00 AM",
- },
- "it correctly adds from a !isDST date to a isDST date"
- );
- });
-
- freezeTime({ date: "2020-04-06 10:59" }, () => {
- assert.buildsCorrectDate(
- {
- date: "2020-03-30",
- time: "11:00",
- recurring: "1.weeks",
- timezone: PARIS,
- },
- {
- formated: "Today 11:00 AM",
- },
- "it works to the minute"
- );
- });
-
- freezeTime({ date: "2020-04-06 11:01" }, () => {
- assert.buildsCorrectDate(
- {
- date: "2020-03-30",
- time: "11:00",
- recurring: "1.weeks",
- timezone: PARIS,
- },
- {
- formated: "April 13, 2020 11:00 AM",
- },
- "it works to the minute"
- );
- });
-
- freezeTime({ date: "2020-12-28 09:16" }, () => {
- assert.buildsCorrectDate(
- {
- date: "2021-01-24",
- time: "08:30",
- recurring: "1.weeks",
- timezone: NEW_YORK,
- },
- {
- formated: "January 24, 2021 2:30 PM",
- },
- "it works for a future date"
- );
- });
-
- freezeTime({ date: "2021-01-08 11:16" }, () => {
- assert.buildsCorrectDate(
- {
- date: "2021-01-05",
- time: "14:00",
- recurring: "2.hours",
- timezone: NEW_YORK,
- },
- {
- formated: "Today 12:00 PM",
- },
- "it works with hours"
- );
- });
-});
-
-test("option[countown]", function (assert) {
- freezeTime({ date: "2020-03-21 23:59" }, () => {
- assert.buildsCorrectDate(
- {
- countdown: true,
- timezone: PARIS,
- },
- { formated: "a minute" },
- "it shows the time remaining"
- );
- });
-
- freezeTime({ date: "2020-03-22 00:01" }, () => {
- assert.buildsCorrectDate(
- {
- countdown: true,
- timezone: PARIS,
- },
- {
- formated: I18n.t(
- "discourse_local_dates.relative_dates.countdown.passed"
- ),
- },
- "it shows the date has passed"
- );
- });
-});
-
-test("option[calendar]", function (assert) {
- freezeTime({ date: "2020-03-23 23:00" }, () => {
- assert.buildsCorrectDate(
- { date: "2020-03-22", time: "23:59", timezone: PARIS },
- { formated: "Yesterday 11:59 PM" },
- "it drops calendar mode when event date is more than one day before current date"
- );
- });
-
- freezeTime({ date: "2020-03-20 23:59" }, () =>
- assert.buildsCorrectDate(
- { date: "2020-03-21", time: "01:00", timezone: PARIS },
- { formated: "Tomorrow 1:00 AM" }
- )
- );
-
- freezeTime({ date: "2020-03-20 23:59" }, () =>
- assert.buildsCorrectDate(
- { date: "2020-03-21", time: "00:00", timezone: PARIS },
- { formated: "Saturday" },
- "it displays the day with no time when the time in the displayed timezone is 00:00"
- )
- );
-
- freezeTime({ date: "2020-03-20 23:59" }, () => {
- assert.buildsCorrectDate(
- { date: "2020-03-21", time: "23:59", timezone: PARIS },
- { formated: "Tomorrow 11:59 PM" }
- );
- });
-
- freezeTime({ date: "2020-03-21 00:00" }, () =>
- assert.buildsCorrectDate(
- { date: "2020-03-21", time: "23:00", timezone: PARIS },
- { formated: "Today 11:00 PM" }
- )
- );
-
- freezeTime({ date: "2020-03-22 23:59" }, () =>
- assert.buildsCorrectDate(
- { date: "2020-03-21", time: "23:59", timezone: PARIS },
- { formated: "Yesterday 11:59 PM" }
- )
- );
-
- freezeTime({ date: "2020-03-22 23:59" }, () =>
- assert.buildsCorrectDate(
- { date: "2020-03-21", time: "23:59", timezone: PARIS },
- { formated: "Yesterday 11:59 PM" }
- )
- );
-
- freezeTime({ date: "2020-03-22 23:59" }, () =>
- assert.buildsCorrectDate(
- { calendar: false, date: "2020-03-21", time: "23:59", timezone: PARIS },
- { formated: "March 21, 2020 11:59 PM" },
- "it doesn't use calendar when disabled"
- )
- );
-
- freezeTime({ date: "2020-03-24 01:00" }, () =>
- assert.buildsCorrectDate(
- { date: "2020-03-21", timezone: PARIS },
- { formated: "March 21, 2020" },
- "it stops formating out of calendar range"
- )
- );
-
- freezeTime({ date: "2020-05-12", timezone: LOS_ANGELES }, () => {
- assert.buildsCorrectDate(
- {
- date: "2020-05-13",
- time: "18:00",
- localTimezone: LOS_ANGELES,
- },
- { formated: "Tomorrow 11:00 AM" },
- "it correctly displays a different local timezone"
- );
- });
-});
-
-test("previews", function (assert) {
- freezeTime({ date: "2020-03-22" }, () => {
- assert.buildsCorrectDate(
- { timezone: PARIS },
- {
- previews: [
- {
- current: true,
- formated:
- "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
- timezone: "Paris",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
- assert.buildsCorrectDate(
- { timezone: PARIS, timezones: [SYDNEY] },
- {
- previews: [
- {
- current: true,
- formated:
- "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
- timezone: "Paris",
- },
- {
- formated:
- "Sunday, March 22, 2020 10:00 AM → Monday, March 23, 2020 10:00 AM",
- timezone: "Sydney",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
- assert.buildsCorrectDate(
- { timezone: PARIS, displayedTimezone: LOS_ANGELES },
- {
- previews: [
- {
- current: true,
- formated:
- "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
- timezone: "Paris",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
- assert.buildsCorrectDate(
- { timezone: PARIS, isplayedTimezone: PARIS },
- {
- previews: [
- {
- current: true,
- formated:
- "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
- timezone: "Paris",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
- assert.buildsCorrectDate(
- { timezone: PARIS, timezones: [PARIS] },
- {
- previews: [
- {
- current: true,
- formated:
- "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
- timezone: "Paris",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
- assert.buildsCorrectDate(
- { duration: 90, timezone: PARIS, timezones: [PARIS] },
- {
- previews: [
- {
- current: true,
- formated:
- 'Sunday, March 22, 2020
12:00 AM → 1:30 AM',
- timezone: "Paris",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
- assert.buildsCorrectDate(
- { duration: 1440, timezone: PARIS, timezones: [PARIS] },
- {
- previews: [
- {
- current: true,
- formated:
- "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
- timezone: "Paris",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
- assert.buildsCorrectDate(
- { time: "11:34", timezone: PARIS, timezones: [PARIS] },
- {
- previews: [
- {
- current: true,
- formated:
- 'Sunday, March 22, 2020
11:34 AM',
- timezone: "Paris",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-04-06", timezone: PARIS }, () => {
- assert.buildsCorrectDate(
- {
- timezone: PARIS,
- date: "2020-04-07",
- timezones: [LONDON, LAGOS, SYDNEY],
- },
- {
- previews: [
- {
- current: true,
- formated:
- "Tuesday, April 7, 2020 12:00 AM → Wednesday, April 8, 2020 12:00 AM",
- timezone: "Paris",
- },
- {
- formated:
- "Monday, April 6, 2020 11:00 PM → Tuesday, April 7, 2020 11:00 PM",
- timezone: "London",
- },
- {
- formated:
- "Monday, April 6, 2020 11:00 PM → Tuesday, April 7, 2020 11:00 PM",
- timezone: "Lagos",
- },
- {
- formated:
- "Tuesday, April 7, 2020 8:00 AM → Wednesday, April 8, 2020 8:00 AM",
- timezone: "Sydney",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-04-06", timezone: PARIS }, () => {
- assert.buildsCorrectDate(
- {
- timezone: PARIS,
- date: "2020-04-07",
- time: "14:54",
- timezones: [LONDON, LAGOS, SYDNEY],
- },
- {
- previews: [
- {
- current: true,
- formated:
- 'Tuesday, April 7, 2020
2:54 PM',
- timezone: "Paris",
- },
- {
- formated:
- 'Tuesday, April 7, 2020
1:54 PM',
- timezone: "London",
- },
- {
- formated:
- 'Tuesday, April 7, 2020
1:54 PM',
- timezone: "Lagos",
- },
- {
- formated:
- 'Tuesday, April 7, 2020
10:54 PM',
- timezone: "Sydney",
- },
- ],
- }
- );
- });
-
- freezeTime({ date: "2020-05-12", timezone: LOS_ANGELES }, () => {
- assert.buildsCorrectDate(
- {
- date: "2020-05-13",
- time: "18:00",
- localTimezone: LOS_ANGELES,
- },
- {
- previews: [
- {
- current: true,
- formated:
- 'Wednesday, May 13, 2020
11:00 AM',
- timezone: "Los Angeles",
- },
- {
- formated:
- 'Wednesday, May 13, 2020
6:00 PM',
- timezone: "UTC",
- },
- ],
- }
+ { date: "2020-04-11", time: "11:00" },
+ { formated: "April 11, 2020 1:00 PM" },
+ "it displays the date with time"
);
+
+ assert.buildsCorrectDate(
+ { date: "2020-04-11", time: "11:05:12", format: "LTS" },
+ { formated: "1:05:12 PM" },
+ "it displays full time (hours, minutes, seconds)"
+ );
+ });
+
+ test("option[format]", function (assert) {
+ freezeTime({ date: "2020-03-11" }, () => {
+ assert.buildsCorrectDate(
+ { format: "YYYY" },
+ { formated: "2020 (UTC)" },
+ "it uses custom format"
+ );
+ });
+ });
+
+ test("option[displayedTimezone]", function (assert) {
+ freezeTime({}, () => {
+ assert.buildsCorrectDate(
+ { displayedTimezone: SYDNEY },
+ { formated: "March 22, 2020 (Sydney)" },
+ "it displays the timezone if the timezone is different from the date"
+ );
+ });
+
+ freezeTime({}, () => {
+ assert.buildsCorrectDate(
+ { displayedTimezone: PARIS, timezone: PARIS },
+ { formated: "March 22, 2020" },
+ "it doesn't display the timezone if the timezone is the same than the date"
+ );
+ });
+
+ freezeTime({}, () => {
+ assert.buildsCorrectDate(
+ { timezone: UTC, displayedTimezone: UTC },
+ { formated: "March 22, 2020 (UTC)" },
+ "it replaces `Etc/`"
+ );
+ });
+
+ freezeTime({}, () => {
+ assert.buildsCorrectDate(
+ { timezone: LOS_ANGELES, displayedTimezone: LOS_ANGELES },
+ { formated: "March 22, 2020 (Los Angeles)" },
+ "it removes prefix and replaces `_`"
+ );
+ });
+ });
+
+ test("option[timezone]", function (assert) {
+ freezeTime({}, () => {
+ assert.buildsCorrectDate(
+ { timezone: SYDNEY, displayedTimezone: PARIS },
+ { formated: "March 21, 2020" },
+ "it correctly parses a date with the given timezone context"
+ );
+ });
+ });
+
+ test("option[recurring]", function (assert) {
+ freezeTime({ date: "2020-04-06 06:00", timezone: LAGOS }, () => {
+ assert.buildsCorrectDate(
+ {
+ date: "2019-11-25",
+ time: "11:00",
+ timezone: PARIS,
+ displayedTimezone: LAGOS,
+ recurring: "1.weeks",
+ },
+ {
+ formated: "April 6, 2020 10:00 AM (Lagos)",
+ },
+ "it correctly formats a recurring date starting from a !isDST timezone to a isDST timezone date when displayed to a user using a timezone with no DST"
+ );
+ });
+
+ freezeTime({ date: "2020-04-06 01:00", timezone: SYDNEY }, () => {
+ assert.buildsCorrectDate(
+ {
+ date: "2020-03-09",
+ time: "02:00",
+ timezone: UTC,
+ recurring: "1.weeks",
+ calendar: false,
+ displayedTimezone: SYDNEY,
+ },
+ {
+ formated: "April 6, 2020 12:00 PM (Sydney)",
+ },
+ "it correctly formats a recurring date spanning over weeks"
+ );
+ });
+
+ freezeTime({ date: "2020-04-07 22:00" }, () => {
+ assert.buildsCorrectDate(
+ {
+ date: "2019-11-25",
+ time: "11:00",
+ recurring: "1.weeks",
+ timezone: PARIS,
+ },
+ {
+ formated: "April 13, 2020 11:00 AM",
+ },
+ "it correctly adds from a !isDST date to a isDST date"
+ );
+ });
+
+ freezeTime({ date: "2020-04-06 10:59" }, () => {
+ assert.buildsCorrectDate(
+ {
+ date: "2020-03-30",
+ time: "11:00",
+ recurring: "1.weeks",
+ timezone: PARIS,
+ },
+ {
+ formated: "Today 11:00 AM",
+ },
+ "it works to the minute"
+ );
+ });
+
+ freezeTime({ date: "2020-04-06 11:01" }, () => {
+ assert.buildsCorrectDate(
+ {
+ date: "2020-03-30",
+ time: "11:00",
+ recurring: "1.weeks",
+ timezone: PARIS,
+ },
+ {
+ formated: "April 13, 2020 11:00 AM",
+ },
+ "it works to the minute"
+ );
+ });
+
+ freezeTime({ date: "2020-12-28 09:16" }, () => {
+ assert.buildsCorrectDate(
+ {
+ date: "2021-01-24",
+ time: "08:30",
+ recurring: "1.weeks",
+ timezone: NEW_YORK,
+ },
+ {
+ formated: "January 24, 2021 2:30 PM",
+ },
+ "it works for a future date"
+ );
+ });
+
+ freezeTime({ date: "2021-01-08 11:16" }, () => {
+ assert.buildsCorrectDate(
+ {
+ date: "2021-01-05",
+ time: "14:00",
+ recurring: "2.hours",
+ timezone: NEW_YORK,
+ },
+ {
+ formated: "Today 12:00 PM",
+ },
+ "it works with hours"
+ );
+ });
+ });
+
+ test("option[countdown]", function (assert) {
+ freezeTime({ date: "2020-03-21 23:59" }, () => {
+ assert.buildsCorrectDate(
+ {
+ countdown: true,
+ timezone: PARIS,
+ },
+ { formated: "a minute" },
+ "it shows the time remaining"
+ );
+ });
+
+ freezeTime({ date: "2020-03-22 00:01" }, () => {
+ assert.buildsCorrectDate(
+ {
+ countdown: true,
+ timezone: PARIS,
+ },
+ {
+ formated: I18n.t(
+ "discourse_local_dates.relative_dates.countdown.passed"
+ ),
+ },
+ "it shows the date has passed"
+ );
+ });
+ });
+
+ test("option[calendar]", function (assert) {
+ freezeTime({ date: "2020-03-23 23:00" }, () => {
+ assert.buildsCorrectDate(
+ { date: "2020-03-22", time: "23:59", timezone: PARIS },
+ { formated: "Yesterday 11:59 PM" },
+ "it drops calendar mode when event date is more than one day before current date"
+ );
+ });
+
+ freezeTime({ date: "2020-03-20 23:59" }, () =>
+ assert.buildsCorrectDate(
+ { date: "2020-03-21", time: "01:00", timezone: PARIS },
+ { formated: "Tomorrow 1:00 AM" }
+ )
+ );
+
+ freezeTime({ date: "2020-03-20 23:59" }, () =>
+ assert.buildsCorrectDate(
+ { date: "2020-03-21", time: "00:00", timezone: PARIS },
+ { formated: "Saturday" },
+ "it displays the day with no time when the time in the displayed timezone is 00:00"
+ )
+ );
+
+ freezeTime({ date: "2020-03-20 23:59" }, () => {
+ assert.buildsCorrectDate(
+ { date: "2020-03-21", time: "23:59", timezone: PARIS },
+ { formated: "Tomorrow 11:59 PM" }
+ );
+ });
+
+ freezeTime({ date: "2020-03-21 00:00" }, () =>
+ assert.buildsCorrectDate(
+ { date: "2020-03-21", time: "23:00", timezone: PARIS },
+ { formated: "Today 11:00 PM" }
+ )
+ );
+
+ freezeTime({ date: "2020-03-22 23:59" }, () =>
+ assert.buildsCorrectDate(
+ { date: "2020-03-21", time: "23:59", timezone: PARIS },
+ { formated: "Yesterday 11:59 PM" }
+ )
+ );
+
+ freezeTime({ date: "2020-03-22 23:59" }, () =>
+ assert.buildsCorrectDate(
+ { date: "2020-03-21", time: "23:59", timezone: PARIS },
+ { formated: "Yesterday 11:59 PM" }
+ )
+ );
+
+ freezeTime({ date: "2020-03-22 23:59" }, () =>
+ assert.buildsCorrectDate(
+ { calendar: false, date: "2020-03-21", time: "23:59", timezone: PARIS },
+ { formated: "March 21, 2020 11:59 PM" },
+ "it doesn't use calendar when disabled"
+ )
+ );
+
+ freezeTime({ date: "2020-03-24 01:00" }, () =>
+ assert.buildsCorrectDate(
+ { date: "2020-03-21", timezone: PARIS },
+ { formated: "March 21, 2020" },
+ "it stops formatting out of calendar range"
+ )
+ );
+
+ freezeTime({ date: "2020-05-12", timezone: LOS_ANGELES }, () => {
+ assert.buildsCorrectDate(
+ {
+ date: "2020-05-13",
+ time: "18:00",
+ localTimezone: LOS_ANGELES,
+ },
+ { formated: "Tomorrow 11:00 AM" },
+ "it correctly displays a different local timezone"
+ );
+ });
+ });
+
+ test("previews", function (assert) {
+ freezeTime({ date: "2020-03-22" }, () => {
+ assert.buildsCorrectDate(
+ { timezone: PARIS },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
+ timezone: "Paris",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
+ assert.buildsCorrectDate(
+ { timezone: PARIS, timezones: [SYDNEY] },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
+ timezone: "Paris",
+ },
+ {
+ formated:
+ "Sunday, March 22, 2020 10:00 AM → Monday, March 23, 2020 10:00 AM",
+ timezone: "Sydney",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
+ assert.buildsCorrectDate(
+ { timezone: PARIS, displayedTimezone: LOS_ANGELES },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
+ timezone: "Paris",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
+ assert.buildsCorrectDate(
+ { timezone: PARIS, displayedTimezone: PARIS },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
+ timezone: "Paris",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
+ assert.buildsCorrectDate(
+ { timezone: PARIS, timezones: [PARIS] },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
+ timezone: "Paris",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
+ assert.buildsCorrectDate(
+ { duration: 90, timezone: PARIS, timezones: [PARIS] },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ 'Sunday, March 22, 2020
12:00 AM → 1:30 AM',
+ timezone: "Paris",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
+ assert.buildsCorrectDate(
+ { duration: 1440, timezone: PARIS, timezones: [PARIS] },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ "Sunday, March 22, 2020 12:00 AM → Monday, March 23, 2020 12:00 AM",
+ timezone: "Paris",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-03-22", timezone: PARIS }, () => {
+ assert.buildsCorrectDate(
+ { time: "11:34", timezone: PARIS, timezones: [PARIS] },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ 'Sunday, March 22, 2020
11:34 AM',
+ timezone: "Paris",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-04-06", timezone: PARIS }, () => {
+ assert.buildsCorrectDate(
+ {
+ timezone: PARIS,
+ date: "2020-04-07",
+ timezones: [LONDON, LAGOS, SYDNEY],
+ },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ "Tuesday, April 7, 2020 12:00 AM → Wednesday, April 8, 2020 12:00 AM",
+ timezone: "Paris",
+ },
+ {
+ formated:
+ "Monday, April 6, 2020 11:00 PM → Tuesday, April 7, 2020 11:00 PM",
+ timezone: "London",
+ },
+ {
+ formated:
+ "Monday, April 6, 2020 11:00 PM → Tuesday, April 7, 2020 11:00 PM",
+ timezone: "Lagos",
+ },
+ {
+ formated:
+ "Tuesday, April 7, 2020 8:00 AM → Wednesday, April 8, 2020 8:00 AM",
+ timezone: "Sydney",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-04-06", timezone: PARIS }, () => {
+ assert.buildsCorrectDate(
+ {
+ timezone: PARIS,
+ date: "2020-04-07",
+ time: "14:54",
+ timezones: [LONDON, LAGOS, SYDNEY],
+ },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ 'Tuesday, April 7, 2020
2:54 PM',
+ timezone: "Paris",
+ },
+ {
+ formated:
+ 'Tuesday, April 7, 2020
1:54 PM',
+ timezone: "London",
+ },
+ {
+ formated:
+ 'Tuesday, April 7, 2020
1:54 PM',
+ timezone: "Lagos",
+ },
+ {
+ formated:
+ 'Tuesday, April 7, 2020
10:54 PM',
+ timezone: "Sydney",
+ },
+ ],
+ }
+ );
+ });
+
+ freezeTime({ date: "2020-05-12", timezone: LOS_ANGELES }, () => {
+ assert.buildsCorrectDate(
+ {
+ date: "2020-05-13",
+ time: "18:00",
+ localTimezone: LOS_ANGELES,
+ },
+ {
+ previews: [
+ {
+ current: true,
+ formated:
+ 'Wednesday, May 13, 2020
11:00 AM',
+ timezone: "Los Angeles",
+ },
+ {
+ formated:
+ 'Wednesday, May 13, 2020
6:00 PM',
+ timezone: "UTC",
+ },
+ ],
+ }
+ );
+ });
});
});