Replaces date-fns library with day.js to reduce bundle size and improve tree-shaking - Centralizes all date logic in DateService - Reduces library footprint from 576 KB to 29 KB - Maintains 99.4% test coverage during migration - Adds timezone and formatting plugins for day.js Improves overall library performance and reduces dependency complexity
58 lines
1.6 KiB
TypeScript
58 lines
1.6 KiB
TypeScript
/**
|
|
* Test helpers for creating mock Configuration objects
|
|
*/
|
|
|
|
import { Configuration } from '../../src/configurations/CalendarConfig';
|
|
import { ICalendarConfig } from '../../src/configurations/ICalendarConfig';
|
|
import { IGridSettings } from '../../src/configurations/GridSettings';
|
|
import { IDateViewSettings } from '../../src/configurations/DateViewSettings';
|
|
import { ITimeFormatConfig } from '../../src/configurations/TimeFormatConfig';
|
|
|
|
/**
|
|
* Create a minimal test configuration with default values
|
|
*/
|
|
export function createTestConfig(overrides: Partial<{
|
|
timezone: string;
|
|
hourHeight: number;
|
|
snapInterval: number;
|
|
}> = {}): Configuration {
|
|
const gridSettings: IGridSettings = {
|
|
hourHeight: overrides.hourHeight ?? 60,
|
|
gridStartTime: '00:00',
|
|
gridEndTime: '24:00',
|
|
workStartTime: '08:00',
|
|
workEndTime: '17:00',
|
|
snapInterval: overrides.snapInterval ?? 15,
|
|
gridStartThresholdMinutes: 15
|
|
};
|
|
|
|
const dateViewSettings: IDateViewSettings = {
|
|
periodType: 'week',
|
|
firstDayOfWeek: 1
|
|
};
|
|
|
|
const timeFormatConfig: ITimeFormatConfig = {
|
|
timezone: overrides.timezone ?? 'Europe/Copenhagen',
|
|
locale: 'da-DK',
|
|
showSeconds: false
|
|
};
|
|
|
|
const calendarConfig: ICalendarConfig = {
|
|
gridSettings,
|
|
dateViewSettings,
|
|
timeFormatConfig,
|
|
currentWorkWeek: 'standard',
|
|
currentView: 'week',
|
|
selectedDate: new Date().toISOString()
|
|
};
|
|
|
|
return new Configuration(
|
|
calendarConfig,
|
|
gridSettings,
|
|
dateViewSettings,
|
|
timeFormatConfig,
|
|
'standard',
|
|
'week',
|
|
new Date()
|
|
);
|
|
}
|