mirror of
https://gitlab.nic.cz/turris/reforis/foris-js.git
synced 2024-12-24 00:01:36 +01:00
Added date and time utilities.
This commit is contained in:
parent
5939e9dd0e
commit
9fbc4e8383
2
package-lock.json
generated
2
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "foris",
|
"name": "foris",
|
||||||
"version": "4.0.0",
|
"version": "4.1.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "foris",
|
"name": "foris",
|
||||||
"version": "4.0.0",
|
"version": "4.1.0",
|
||||||
"description": "Set of components and utils for Foris and its plugins.",
|
"description": "Set of components and utils for Foris and its plugins.",
|
||||||
"author": "CZ.NIC, z.s.p.o.",
|
"author": "CZ.NIC, z.s.p.o.",
|
||||||
"repository": {
|
"repository": {
|
||||||
|
|
|
@ -64,6 +64,7 @@ export {
|
||||||
} from "./utils/conditionalHOCs";
|
} from "./utils/conditionalHOCs";
|
||||||
export { ErrorMessage } from "./utils/ErrorMessage";
|
export { ErrorMessage } from "./utils/ErrorMessage";
|
||||||
export { useClickOutside } from "./utils/hooks";
|
export { useClickOutside } from "./utils/hooks";
|
||||||
|
export { toLocaleDateString } from "./utils/datetime";
|
||||||
|
|
||||||
// Foris URL
|
// Foris URL
|
||||||
export { ForisURLs, REFORIS_URL_PREFIX } from "./forisUrls";
|
export { ForisURLs, REFORIS_URL_PREFIX } from "./forisUrls";
|
||||||
|
|
|
@ -17,7 +17,7 @@ global.afterEach(() => {
|
||||||
global._ = (str) => str;
|
global._ = (str) => str;
|
||||||
global.ngettext = (str) => str;
|
global.ngettext = (str) => str;
|
||||||
global.babel = { format: (str) => str };
|
global.babel = { format: (str) => str };
|
||||||
global.ForisTranslations = {};
|
global.ForisTranslations = { locale: "en" };
|
||||||
|
|
||||||
// Mock web sockets
|
// Mock web sockets
|
||||||
window.WebSocket = jest.fn();
|
window.WebSocket = jest.fn();
|
||||||
|
|
51
src/utils/__tests__/datetime.test.js
Normal file
51
src/utils/__tests__/datetime.test.js
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2019 CZ.NIC z.s.p.o. (http://www.nic.cz/)
|
||||||
|
*
|
||||||
|
* This is free software, licensed under the GNU General Public License v3.
|
||||||
|
* See /LICENSE for more information.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import { toLocaleDateString } from "../datetime";
|
||||||
|
|
||||||
|
describe("toLocaleDateString", () => {
|
||||||
|
it("should work with different locale", () => {
|
||||||
|
global.ForisTranslations = { locale: "fr" };
|
||||||
|
expect(
|
||||||
|
toLocaleDateString("2020-02-20T12:51:36+00:00")
|
||||||
|
).toBe("20 février 2020 12:51");
|
||||||
|
global.ForisTranslations = { locale: "en" };
|
||||||
|
})
|
||||||
|
|
||||||
|
it("should convert with default format", () => {
|
||||||
|
expect(
|
||||||
|
toLocaleDateString("2020-02-20T12:51:36+00:00")
|
||||||
|
).toBe("February 20, 2020 12:51 PM");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should convert with custom input format", () => {
|
||||||
|
expect(
|
||||||
|
toLocaleDateString(
|
||||||
|
"2020-02-20 12:51:36 +0000",
|
||||||
|
{ inputFormat: "YYYY-MM-DD HH:mm:ss Z" },
|
||||||
|
)
|
||||||
|
).toBe("February 20, 2020 12:51 PM");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should convert with custom output format", () => {
|
||||||
|
expect(
|
||||||
|
toLocaleDateString(
|
||||||
|
"2020-02-20T12:51:36+00:00",
|
||||||
|
{ outputFormat: "LL" },
|
||||||
|
)
|
||||||
|
).toBe("February 20, 2020");
|
||||||
|
});
|
||||||
|
|
||||||
|
it("should convert with custom input and output format", () => {
|
||||||
|
expect(
|
||||||
|
toLocaleDateString(
|
||||||
|
"2020-02-20 12:51:36 +0000",
|
||||||
|
{ inputFormat: "YYYY-MM-DD HH:mm:ss Z", outputFormat: "LL" },
|
||||||
|
)
|
||||||
|
).toBe("February 20, 2020");
|
||||||
|
});
|
||||||
|
});
|
8
src/utils/datetime.js
Normal file
8
src/utils/datetime.js
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
import moment from "moment";
|
||||||
|
|
||||||
|
export function toLocaleDateString(date, { inputFormat, outputFormat = "LLL" } = {}) {
|
||||||
|
const parsedDate = inputFormat ? moment(date, inputFormat) : moment(date);
|
||||||
|
return parsedDate
|
||||||
|
.locale(ForisTranslations.locale)
|
||||||
|
.format(outputFormat);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user