fdf652951a
#353 を再開できなかったので. Reviewed-on: #380 Co-authored-by: miteruzo <miteruzo@naver.com> Co-committed-by: miteruzo <miteruzo@naver.com>
40 行
1.1 KiB
TypeScript
40 行
1.1 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { cn, msToTime, originalCreatedAtString, toDate } from '@/lib/utils'
|
|
|
|
describe ('utils', () => {
|
|
it ('converts strings to dates and leaves date instances intact', () => {
|
|
const date = new Date ('2026-01-02T03:04:05Z')
|
|
|
|
expect (toDate ('2026-01-02T03:04:05Z')).toBeInstanceOf (Date)
|
|
expect (toDate (date)).toBe (date)
|
|
})
|
|
|
|
it ('merges conditional Tailwind classes', () => {
|
|
const hidden = false
|
|
|
|
expect (cn ('p-2', hidden && 'hidden', 'p-4')).toBe ('p-4')
|
|
})
|
|
|
|
it ('renders unknown original creation time ranges', () => {
|
|
expect (originalCreatedAtString (null, null)).toBe ('年月日不詳')
|
|
expect (
|
|
originalCreatedAtString (
|
|
'2026-01-01T00:00:00+09:00',
|
|
'2026-01-02T00:00:00+09:00',
|
|
),
|
|
).toContain ('時刻不詳')
|
|
})
|
|
})
|
|
|
|
describe ('msToTime', () => {
|
|
it ('keeps milliseconds when present', () => {
|
|
expect (msToTime (60_500)).toBe ('1:00.500')
|
|
expect (msToTime (60_001)).toBe ('1:00.001')
|
|
})
|
|
|
|
it ('omits milliseconds when they are zero', () => {
|
|
expect (msToTime (60_000)).toBe ('1:00')
|
|
})
|
|
})
|