This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
import { calendarModeLabel, clampFabPosition, countdownDayText, countdownKindLabel, dateKey, defaultView, habitButtonValue, habitWeek, isFabDrag, isHabitComplete, isHabitScheduledToday, isTaskView, nextHabitSwipeValue, nextTotalAfterLocalTaskAdd, numericHabitInputValue, previousHabitSwipeValue, quickTaskFields, readCountdownCache, readHabitGridCache, shouldToggleRowSwipe, writeCountdownCache, writeHabitGridCache } from './mvp-utils'
|
||||
import { calendarModeLabel, clampFabPosition, countdownDayText, countdownKindLabel, dateKey, defaultView, habitButtonNotice, habitButtonValue, habitWeek, isFabDrag, isHabitComplete, isHabitScheduledToday, isTaskView, nextHabitSwipeValue, nextTotalAfterLocalTaskAdd, numericHabitInputValue, previousHabitSwipeValue, quickTaskFields, readCountdownCache, readHabitGridCache, shouldToggleRowSwipe, writeCountdownCache, writeHabitGridCache } from './mvp-utils'
|
||||
|
||||
describe('MVP view utilities', () => {
|
||||
it('formats a local date as YYYY-MM-DD', () => {
|
||||
@@ -70,6 +70,13 @@ describe('MVP view utilities', () => {
|
||||
expect(habitButtonValue('boolean', 1, 1)).toBe(0)
|
||||
})
|
||||
|
||||
it('uses reset wording when a completed numeric habit button returns to zero', () => {
|
||||
expect(habitButtonNotice('numeric', 3, 0)).toBe('今日进度已重置')
|
||||
expect(habitButtonNotice('numeric', 2, 3)).toBe('已记录一次 🎉')
|
||||
expect(habitButtonNotice('numeric', 2, 1)).toBe('已减少一次')
|
||||
expect(habitButtonNotice('boolean', 1, 0)).toBe('已取消完成')
|
||||
})
|
||||
|
||||
it('reuses the current week habit grid while refreshing in the background', () => {
|
||||
const habits = [{ id: 'habit-1', name: '喝水' }]
|
||||
writeHabitGridCache('2026-09-07', habits)
|
||||
|
||||
@@ -75,6 +75,12 @@ export function habitButtonValue(kind: string | undefined, current: number | boo
|
||||
return nextHabitSwipeValue(kind, current, target)
|
||||
}
|
||||
|
||||
export function habitButtonNotice(kind: string | undefined, previous: number | boolean | undefined, next: number | boolean) {
|
||||
if (kind === 'numeric' && Number(previous ?? 0) > 0 && Number(next) === 0) return '今日进度已重置'
|
||||
if (kind !== 'numeric' && Number(previous ?? 0) > 0 && Number(next) === 0) return '已取消完成'
|
||||
return Number(next) > Number(previous ?? 0) ? '已记录一次 🎉' : '已减少一次'
|
||||
}
|
||||
|
||||
export function numericHabitInputValue(input: number | string | undefined) {
|
||||
if (input === undefined || input === '') return null
|
||||
const value = Number(input)
|
||||
|
||||
Reference in New Issue
Block a user