diff --git a/src/helpers/time/parseDate.ts b/src/helpers/time/parseDate.ts index 218491a3..0994b5d2 100644 --- a/src/helpers/time/parseDate.ts +++ b/src/helpers/time/parseDate.ts @@ -297,7 +297,8 @@ const getDayFromText = (text: string) => { } } - const date = new Date() + const now = new Date() + const date = new Date(now) const day = parseInt(results[0]) date.setDate(day) @@ -309,7 +310,7 @@ const getDayFromText = (text: string) => { date.setDate(day) } - if (date < new Date()) { + if (date < now) { date.setMonth(date.getMonth() + 1) } diff --git a/src/modules/parseTaskText.test.js b/src/modules/parseTaskText.test.js index a4c9eba3..885f792d 100644 --- a/src/modules/parseTaskText.test.js +++ b/src/modules/parseTaskText.test.js @@ -208,7 +208,11 @@ describe('Parse Task Text', () => { expect(result.text).toBe('Lorem Ipsum') expect(result.date.getDate()).toBe(date.getDate()) - expect(result.date.getMonth()).toBe(result.date.getDate() === 31 ? date.getMonth() + 2 : date.getMonth() + 1) + + const nextMonthWithDate = result.date.getDate() === 31 + ? (date.getMonth() + 2) % 12 + : (date.getMonth() + 1) % 12 + expect(result.date.getMonth()).toBe(nextMonthWithDate) }) it('should recognize dates of the month in the future', () => { const nextDay = new Date(+new Date() + 60 * 60 * 24 * 1000)