|
| 1 | +import { beforeEach, describe, expect, it } from 'vitest'; |
| 2 | +import { format } from 'date-fns'; |
| 3 | + |
| 4 | +import { |
| 5 | + DAY_FORMAT, |
| 6 | + TIME_FORMAT, |
| 7 | + getNoteDateLabel, |
| 8 | + getTaskDueLabel, |
| 9 | +} from '@/components/content/utils'; |
| 10 | + |
| 11 | +// Test all date labels for Notes |
| 12 | +describe('getNoteDateLabel', () => { |
| 13 | + it('should return the correct date labels Notes', () => { |
| 14 | + const now = new Date(); |
| 15 | + const yesterday = new Date(now); |
| 16 | + yesterday.setDate(now.getDate() - 1); |
| 17 | + const lastWeek = new Date(now); |
| 18 | + lastWeek.setDate(now.getDate() - 7); |
| 19 | + const threeWeeksAgo = new Date(now); |
| 20 | + threeWeeksAgo.setDate(now.getDate() - 21); |
| 21 | + const lastMonth = new Date(now); |
| 22 | + lastMonth.setMonth(now.getMonth() - 1); |
| 23 | + const lastYear = new Date(now); |
| 24 | + lastYear.setFullYear(now.getFullYear() - 1); |
| 25 | + |
| 26 | + expect(getNoteDateLabel(now)).toBe(format(now, TIME_FORMAT)); |
| 27 | + expect(getNoteDateLabel(yesterday)).toBe( |
| 28 | + 'Yesterday at ' + format(yesterday, TIME_FORMAT), |
| 29 | + ); |
| 30 | + expect(getNoteDateLabel(lastWeek)).toBe('Last week'); |
| 31 | + expect(getNoteDateLabel(threeWeeksAgo)).toBe('3 weeks ago'); |
| 32 | + expect(getNoteDateLabel(lastMonth)).toBe('1 month(s) ago'); |
| 33 | + expect(getNoteDateLabel(lastYear)).toBe('1 year(s) ago'); |
| 34 | + }); |
| 35 | +}); |
| 36 | + |
| 37 | +// Test all date labels for Tasks |
| 38 | +describe('getTaskDueLabel', () => { |
| 39 | + it('should return the correct label for Tasks', () => { |
| 40 | + const now = new Date(); |
| 41 | + const yesterday = new Date(now); |
| 42 | + yesterday.setDate(now.getDate() - 1); |
| 43 | + const tomorrow = new Date(now); |
| 44 | + tomorrow.setDate(now.getDate() + 1); |
| 45 | + const thisWeek = new Date(now); |
| 46 | + thisWeek.setDate(now.getDate() + 3); |
| 47 | + const nextWeek = new Date(now); |
| 48 | + nextWeek.setDate(now.getDate() + 7); |
| 49 | + |
| 50 | + expect(getTaskDueLabel(now)).toBe('Today'); |
| 51 | + expect(getTaskDueLabel(yesterday)).toBe('Overdue'); |
| 52 | + expect(getTaskDueLabel(tomorrow)).toBe('Tomorrow'); |
| 53 | + expect(getTaskDueLabel(thisWeek)).toBe(format(thisWeek, DAY_FORMAT)); |
| 54 | + expect(getTaskDueLabel(nextWeek)).toBe('Next week'); |
| 55 | + }); |
| 56 | +}); |
0 commit comments