jalaliday
Version:
Persian (Jalali, Khorshidi) Plugin for Day.js
89 lines (76 loc) • 2.8 kB
text/typescript
import dayjs from 'dayjs'
import MockDate from 'mockdate'
import { afterEach, beforeEach, expect, it } from 'vitest'
import jalali from '../src/dayjs/plugin'
dayjs.extend(jalali)
dayjs.calendar('jalali')
beforeEach(() => {
MockDate.set(new Date())
})
afterEach(() => {
MockDate.reset()
})
it('subtract 1 ms', () => {
const date = dayjs('1397/06/13', { jalali: true })
const date2 = date.subtract(1, 'ms')
expect(date2.year()).toEqual(date.year())
expect(date2.month()).toEqual(date.month())
expect(date2.date()).toEqual(date.date() - 1)
expect(date2.$ms).toEqual(999)
})
it('subtract 1 day in the middle of the month', () => {
const date = dayjs('1397/06/13', { jalali: true })
const date2 = date.subtract(1, 'day')
expect(date2.year()).toEqual(date.year())
expect(date2.month()).toEqual(date.month())
expect(date2.date()).toEqual(date.date() - 1)
})
it('subtract 1 day in the beginning of the month', () => {
const date = dayjs('1397/06/01', { jalali: true })
const date2 = date.subtract(1, 'day')
expect(date2.year()).toEqual(date.year())
expect(date2.month()).toEqual(date.month() - 1)
expect(date2.date()).toEqual(31)
})
it('subtract 1 month in the middle of the year', () => {
const date = dayjs('1397/06/13', { jalali: true })
const date2 = date.subtract(1, 'month')
expect(date2.year()).toEqual(date.year())
expect(date2.month()).toEqual(date.month() - 1)
expect(date2.date()).toEqual(date.date())
})
it('subtract 18 months', () => {
const date = dayjs('1397/06/13', { jalali: true })
const date2 = date.subtract(18, 'month')
expect(date2.year()).toEqual(1395)
expect(date2.month()).toEqual(11)
expect(date2.date()).toEqual(date.date())
})
it('subtract 17 months', () => {
const date = dayjs('1397/06/13', { jalali: true })
const date2 = date.subtract(17, 'month')
expect(date2.year()).toEqual(1396)
expect(date2.month()).toEqual(0)
expect(date2.date()).toEqual(date.date())
})
it('subtract 1 month in the beginning of the year', () => {
const date = dayjs('1397/01/13', { jalali: true })
const date2 = date.subtract(1, 'month')
expect(date2.year()).toEqual(date.year() - 1)
expect(date2.month()).toEqual(11)
expect(date2.date()).toEqual(date.date())
})
it('subtract 1 month in the beginning of the year 2', () => {
const date = dayjs('1397/01/01', { jalali: true })
const date2 = date.subtract(11, 'month')
expect(date2.year()).toEqual(date.year() - 1)
expect(date2.month()).toEqual(1)
expect(date2.date()).toEqual(date.date())
})
it('subtract 1 year', () => {
const date = dayjs('1397/01/13', { jalali: true })
const date2 = date.subtract(1, 'year')
expect(date2.year()).toEqual(date.year() - 1)
expect(date2.month()).toEqual(date.month())
expect(date2.date()).toEqual(date.date())
})