import { describe, it, expect } from 'vitest';
import Date from '@/utils/date.ts';
describe('Date.prototype.pattern Tests', () => {
const date = new Date('2024-03-15T12:34:56.789Z');
it('should format year correctly', () => {
expect(date.pattern('yyyy')).toBe('2024');
expect(date.pattern('yy')).toBe('24');
});
it('should format month correctly', () => {
expect(date.pattern('MM')).toBe('03');
expect(date.pattern('M')).toBe('3');
});
it('should format day correctly', () => {
expect(date.pattern('dd')).toBe('15');
expect(date.pattern('d')).toBe('15');
});
it('should format weekly correctly', () => {
expect(date.pattern('E')).toBe('/u4e94');
expect(date.pattern('EE')).toBe('/u5468/u4e94');
expect(date.pattern('EEE')).toBe('/u661f/u671f/u4e94');
});
it('should format hour correctly', () => {
expect(date.pattern('HH')).toBe('20');
expect(date.pattern('H')).toBe('20');
expect(date.pattern('hh')).toBe('08');
expect(date.pattern('h')).toBe('8');
});
it('should format minute correctly', () => {
expect(date.pattern('mm')).toBe('34');
expect(date.pattern('m')).toBe('34');
});
it('should format second correctly', () => {
expect(date.pattern('ss')).toBe('56');
expect(date.pattern('s')).toBe('56');
});
it('should format quarter correctly', () => {
expect(date.pattern('q')).toBe('1');
expect(date.pattern('qq')).toBe('01');
});
it('should format millisecond correctly', () => {
expect(date.pattern('S')).toBe('789');
});
});
describe('Date.prototype.format Tests', () => {
const date = new Date('2024-03-15T12:34:56.789Z');
it('should format year correctly', () => {
expect(date.format('yyyy')).toBe('2024');
expect(date.format('yy')).toBe('24');
});
it('should format month correctly', () => {
expect(date.format('MM')).toBe('03');
expect(date.format('M')).toBe('3');
});
it('should format day correctly', () => {
expect(date.format('dd')).toBe('15');
expect(date.format('d')).toBe('15');
});
it('should format hour correctly', () => {
expect(date.format('HH')).toBe('HH');
expect(date.format('H')).toBe('H');
expect(date.format('hh')).toBe('12');
expect(date.format('h')).toBe('12');
});
it('should format minute correctly', () => {
expect(date.format('mm')).toBe('34');
expect(date.format('m')).toBe('34');
});
it('should format second correctly', () => {
expect(date.format('ss')).toBe('56');
expect(date.format('s')).toBe('56');
});
it('should format quarter correctly', () => {
expect(date.format('q')).toBe('1');
expect(date.format('qq')).toBe('01');
});
it('should format millisecond correctly', () => {
expect(date.format('S')).toBe('789');
});
});