javascript-time-ago
Version:
Localized relative date/time formatting
153 lines (152 loc) • 7.15 kB
JavaScript
"use strict";
var _TimeAgo = _interopRequireDefault(require("../TimeAgo.js"));
var _approximateTime = _interopRequireDefault(require("./approximateTime.js"));
var _units = require("../steps/units.js");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
function _createForOfIteratorHelperLoose(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (t) return (t = t.call(r)).next.bind(t); if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var o = 0; return function () { return o >= r.length ? { done: !0 } : { done: !1, value: r[o++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) { n[e] = r[e]; } return n; }
describe('style/approximate-time', function () {
it('should format relative time (English)', function () {
approximateScaleStepsTest(['just now', '1 minute', '2 minutes', '5 minutes', '10 minutes', '15 minutes', '20 minutes', '25 minutes', '30 minutes', '35 minutes', '40 minutes', '45 minutes', '50 minutes', '1 hour', '2 hours', '3 hours', '4 hours', '5 hours', '6 hours', '7 hours', '8 hours', '9 hours', '10 hours', '11 hours', '12 hours', '13 hours', '14 hours', '15 hours', '16 hours', '17 hours', '18 hours', '19 hours', '20 hours', '1 day', '2 days', '3 days', '4 days', '5 days', '1 week', '2 weeks', '3 weeks', '1 month', '2 months', '3 months', '4 months', '5 months', '6 months', '7 months', '8 months', '9 months', '9 months', '10 months', '1 year', '2 years', '3 years', '100 years'], 'en-US');
});
it('should format relative time (Russian)', function () {
approximateScaleStepsTest(['только что', '1 минута', '2 минуты', '5 минут', '10 минут', '15 минут', '20 минут', '25 минут', '30 минут', '35 минут', '40 минут', '45 минут', '50 минут', '1 час', '2 часа', '3 часа', '4 часа', '5 часов', '6 часов', '7 часов', '8 часов', '9 часов', '10 часов', '11 часов', '12 часов', '13 часов', '14 часов', '15 часов', '16 часов', '17 часов', '18 часов', '19 часов', '20 часов', '1 день', '2 дня', '3 дня', '4 дня', '5 дней', '1 неделю', '2 недели', '3 недели', '1 месяц', '2 месяца', '3 месяца', '4 месяца', '5 месяцев', '6 месяцев', '7 месяцев', '8 месяцев', '9 месяцев', '9 месяцев', '10 месяцев', '1 год', '2 года', '3 года', '100 лет'], 'ru-RU');
});
});
function approximateScaleStepsTest(labels, timeAgo) {
if (typeof timeAgo === 'string') {
timeAgo = new _TimeAgo["default"](timeAgo);
}
var now = Date.now();
var elapsed = function elapsed(time) {
return timeAgo.format(now - time * 1000, 'approximate-time', {
now: now
});
};
if (approximateScaleSteps.length !== labels.length) {
throw new Error("Array length mismatch. Steps: ".concat(approximateScaleSteps.length, ", labels: ").concat(labels.length));
}
var i = 0;
while (i < approximateScaleSteps.length) {
for (var _iterator = _createForOfIteratorHelperLoose(approximateScaleSteps[i]), _step; !(_step = _iterator()).done;) {
var time = _step.value;
elapsed(time).should.equal(labels[i]);
}
i++;
}
}
var approximateScaleSteps = [
// 'just now':
[],
// '1 minute ago':
[],
// '2 minutes ago':
[],
// '5 minutes ago':
[],
// '10 minutes ago':
[],
// '15 minutes ago':
[],
// '20 minutes ago':
[],
// '25 minutes ago':
[],
// '30 minutes ago':
[],
// '35 minutes ago':
[],
// '40 minutes ago':
[],
// '45 minutes ago':
[],
// '50 minutes ago':
[],
// '1 hour ago':
[],
// '2 hours ago':
[],
// '3 hours ago':
[],
// '4 hours ago':
[],
// '5 hours ago':
[],
// '6 hours ago':
[],
// '7 hours ago':
[],
// '8 hours ago':
[],
// '9 hours ago':
[],
// '10 hours ago':
[],
// '11 hours ago':
[],
// '12 hours ago':
[],
// '13 hours ago':
[],
// '14 hours ago':
[],
// '15 hours ago':
[],
// '16 hours ago':
[],
// '17 hours ago':
[],
// '18 hours ago':
[],
// '19 hours ago':
[],
// '20 hours ago':
[],
// '1 day ago':
[],
// '2 days ago':
[],
// '3 days ago':
[],
// '4 days ago':
[],
// '5 days ago':
[],
// '1 week ago':
[],
// '2 weeks ago':
[],
// '3 weeks ago':
[],
// '1 month ago':
[],
// '2 months ago':
[],
// '3 months ago':
[],
// '4 months ago':
[],
// '5 months ago':
[],
// '6 months ago':
[],
// '7 months ago':
[],
// '8 months ago':
[],
// '9 months ago':
[],
// '9 months ago':
[],
// '10 months ago':
[],
// '1 year ago':
[],
// '2 years ago':
[],
// '3 years ago':
[],
// '100 years ago':
[]];
//# sourceMappingURL=approximateTime.test.js.map