fix: default new task due date to today
ci / docker (push) Successful in 6m22s

This commit is contained in:
2026-09-08 09:11:47 +08:00
parent 5e0c168da1
commit 113791229a
4 changed files with 21 additions and 4 deletions
+6 -1
View File
@@ -1,5 +1,5 @@
import { describe, expect, it } from 'vitest'
import { buildTaskRrule, filterTasks, groupTaskTree, moveItemWithinScope, parseTaskRrule, renderMarkdown, toDateTimeLocal } from './task-utils'
import { buildTaskRrule, defaultTaskDueAt, filterTasks, groupTaskTree, moveItemWithinScope, parseTaskRrule, renderMarkdown, toDateTimeLocal } from './task-utils'
type SearchTask = {
id: string
@@ -63,6 +63,11 @@ describe('task utilities', () => {
expect(filterTasks(searchable, '工作').map((task) => task.id)).toEqual(['4'])
})
it('defaults new tasks to today at noon in local time', () => {
const due = defaultTaskDueAt(new Date(2026, 8, 8, 21, 30))
expect(due).toBe('2026-09-08T12:00')
})
it('formats API dates in local wall-clock time', () => {
const original = process.env.TZ
process.env.TZ = 'Asia/Shanghai'
+7
View File
@@ -144,6 +144,13 @@ export function parseTaskRrule(rrule = ''): TaskRepeatConfig {
}
}
export function defaultTaskDueAt(now = new Date()) {
const year = now.getFullYear()
const month = `${now.getMonth() + 1}`.padStart(2, '0')
const day = `${now.getDate()}`.padStart(2, '0')
return `${year}-${month}-${day}T12:00`
}
export function toDateTimeLocal(value: string | null | undefined) {
if (!value) return ''
const date = new Date(value)