From 1f5a9dbf4062ee7014a99115d1388c2de2d02de0 Mon Sep 17 00:00:00 2001 From: Waseem Ahmad <42496021+waseemahmad31@users.noreply.github.com> Date: Mon, 15 Apr 2019 11:14:36 +0530 Subject: [PATCH] fix: Fix CustomParseFormat plugin bug (#568) fix #555 --- src/plugin/customParseFormat/index.js | 2 +- test/plugin/customParseFormat.test.js | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/plugin/customParseFormat/index.js b/src/plugin/customParseFormat/index.js index 6386650c7..08f67708e 100644 --- a/src/plugin/customParseFormat/index.js +++ b/src/plugin/customParseFormat/index.js @@ -137,7 +137,7 @@ function makeParser(format) { const match = regex.exec(part) const value = match[0] parser.call(time, value) - start += value.length + input = input.replace(value, '') } } correctHours(time) diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index 49462f439..8f7dc3bab 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -161,6 +161,15 @@ it('return Invalid Date when parse corrupt short string', () => { expect(dayjs(input, format).format()).toBe('Invalid Date') }) +it('Invalid Dates', () => { + expect(dayjs('10/12/2014', 'YYYY-MM-DD').format('MM-DD-YYYY')).toBe('Invalid Date') + expect(dayjs('10-12-2014', 'YYYY-MM-DD').format('MM-DD-YYYY')).toBe('Invalid Date') +}) + +it('Valid Date', () => { + expect(dayjs('2014/10/12', 'YYYY-MM-DD').format('MM-DD-YYYY')).toBe('10-12-2014') +}) + it('correctly parse month from string after changing locale globally', () => { const input = '2018 лютий 03' const format = 'YYYY MMMM DD'