mirror of
https://github.com/zadam/trilium.git
synced 2025-12-04 22:44:25 +01:00
edited notes: allow spaces between keyword and delta in #dateNote
to be compatible with existing search syntax
This commit is contained in:
parent
f083908293
commit
2a65b85302
@ -19,7 +19,7 @@ const expectedYear = "2025";
|
||||
const expectedYearMinus1 = "2024";
|
||||
|
||||
function keywordResolvesToDate(dateStrOrKeyword: string, expectedDate: string) {
|
||||
cls.init(() => {
|
||||
cls.init(() => {
|
||||
cls.set("localNowDateTime", clientDate);
|
||||
const dateFilter = dateNoteLabelKeywordToDateFilter(dateStrOrKeyword);
|
||||
expect(dateFilter.date).toBe(expectedDate);
|
||||
@ -27,7 +27,7 @@ function keywordResolvesToDate(dateStrOrKeyword: string, expectedDate: string) {
|
||||
}
|
||||
|
||||
function keywordDoesNotResolve(dateStrOrKeyword: string) {
|
||||
cls.init(() => {
|
||||
cls.init(() => {
|
||||
cls.set("localNowDateTime", clientDate);
|
||||
const dateFilter = dateNoteLabelKeywordToDateFilter(dateStrOrKeyword);
|
||||
expect(dateFilter.date).toBe(null);
|
||||
@ -36,7 +36,7 @@ function keywordDoesNotResolve(dateStrOrKeyword: string) {
|
||||
|
||||
describe("edited-notes::dateNoteLabelKeywordToDateFilter", () => {
|
||||
beforeEach(() => {
|
||||
vi.stubEnv('TZ', 'UTC');
|
||||
vi.stubEnv("TZ", "UTC");
|
||||
vi.useFakeTimers();
|
||||
vi.setSystemTime(new Date(serverDate));
|
||||
});
|
||||
@ -67,6 +67,12 @@ describe("edited-notes::dateNoteLabelKeywordToDateFilter", () => {
|
||||
keywordResolvesToDate("TODAY-1", expectedTodayMinus1);
|
||||
});
|
||||
|
||||
it("resolves 'TODAY - 1' (with spaces) to yesterday's date", () => {
|
||||
keywordResolvesToDate("TODAY - 1", expectedTodayMinus1);
|
||||
keywordResolvesToDate("TODAY- 1", expectedTodayMinus1);
|
||||
keywordResolvesToDate("TODAY -1", expectedTodayMinus1);
|
||||
});
|
||||
|
||||
it("resolves 'MONTH-2' to 2 months ago", () => {
|
||||
keywordResolvesToDate("MONTH-2", expectedMonthMinus2);
|
||||
});
|
||||
|
||||
@ -155,11 +155,11 @@ type DateFilter = DateValue;
|
||||
* @returns A `DateFilter` object containing the resolved date string.
|
||||
*/
|
||||
export function dateNoteLabelKeywordToDateFilter(dateStr: string): DateFilter {
|
||||
const keywordAndDelta = dateStr.match(/^(today|month|year)([+-]\d+)?$/i);
|
||||
const keywordAndDelta = dateStr.match(/^(today|month|year)\s*([+-]\s*\d+)?$/i);
|
||||
|
||||
if (keywordAndDelta) {
|
||||
const keyword = keywordAndDelta[1].toLowerCase();
|
||||
const delta = keywordAndDelta[2] ? parseInt(keywordAndDelta[2]) : 0;
|
||||
const delta = parseInt(keywordAndDelta[2]?.replace(/\s/g, "") ?? "0");
|
||||
|
||||
const clientDate = dayjs(dateUtils.localNowDate());
|
||||
const date = formatDateFromKeywordAndDelta(clientDate, keyword, delta);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user