mirror of
				https://gitlab.nic.cz/turris/reforis/foris-js.git
				synced 2025-11-03 23:00:31 +01:00 
			
		
		
		
	Added date and time utilities.
This commit is contained in:
		@@ -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);
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user