mirror of
https://gitlab.nic.cz/turris/reforis/foris-js.git
synced 2024-11-14 17:35:35 +01:00
Merge branch 'datetime-utils' into 'dev'
Added date and time utilities. See merge request turris/reforis/foris-js!92
This commit is contained in:
commit
d97248c6ec
2
package-lock.json
generated
2
package-lock.json
generated
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "foris",
|
||||
"version": "4.0.0",
|
||||
"version": "4.1.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "foris",
|
||||
"version": "4.0.0",
|
||||
"version": "4.1.0",
|
||||
"description": "Set of components and utils for Foris and its plugins.",
|
||||
"author": "CZ.NIC, z.s.p.o.",
|
||||
"repository": {
|
||||
|
|
|
@ -64,6 +64,7 @@ export {
|
|||
} from "./utils/conditionalHOCs";
|
||||
export { ErrorMessage } from "./utils/ErrorMessage";
|
||||
export { useClickOutside } from "./utils/hooks";
|
||||
export { toLocaleDateString } from "./utils/datetime";
|
||||
|
||||
// Foris URL
|
||||
export { ForisURLs, REFORIS_URL_PREFIX } from "./forisUrls";
|
||||
|
|
|
@ -17,7 +17,7 @@ global.afterEach(() => {
|
|||
global._ = (str) => str;
|
||||
global.ngettext = (str) => str;
|
||||
global.babel = { format: (str) => str };
|
||||
global.ForisTranslations = {};
|
||||
global.ForisTranslations = { locale: "en" };
|
||||
|
||||
// Mock web sockets
|
||||
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