Calendar/test/helpers/config-helpers.ts
Janus C. H. Knudsen b5dfd57d9e Migrates date handling from date-fns to day.js
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
2025-11-12 23:51:48 +01:00

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()
);
}