32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
import { describe, it, expect } from 'vitest'
|
|
import { DOW, DOW_EN, BYDAY_TO_INDEX, bydayFromDate, dowLabel } from '../src/lib/weekday.js'
|
|
|
|
describe('weekday', () => {
|
|
it('DOW has 7 entries starting Sunday', () => {
|
|
expect(DOW).toHaveLength(7)
|
|
expect(DOW[0]).toBe('周日')
|
|
expect(DOW[6]).toBe('周六')
|
|
})
|
|
|
|
it('DOW_EN indexed by JS getDay (0=Sunday)', () => {
|
|
expect(DOW_EN).toEqual(['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'])
|
|
})
|
|
|
|
it('BYDAY_TO_INDEX maps SU..SA to 0..6', () => {
|
|
expect(BYDAY_TO_INDEX.SU).toBe(0)
|
|
expect(BYDAY_TO_INDEX.SA).toBe(6)
|
|
})
|
|
|
|
it('bydayFromDate returns BYDAY code for a Date', () => {
|
|
// 2026-07-27 is a Monday -> getDay()=1 -> 'MO'
|
|
expect(bydayFromDate(new Date(2026, 6, 27))).toBe('MO')
|
|
// 2026-08-01 is a Saturday -> getDay()=6 -> 'SA'
|
|
expect(bydayFromDate(new Date(2026, 7, 1))).toBe('SA')
|
|
})
|
|
|
|
it('dowLabel returns Chinese label for a Date', () => {
|
|
expect(dowLabel(new Date(2026, 6, 27))).toBe('周一')
|
|
expect(dowLabel(new Date(2026, 6, 26))).toBe('周日')
|
|
})
|
|
})
|