2025-10-02 01:03:35 +02:00
|
|
|
import { describe, it, expect, beforeEach } from 'vitest';
|
|
|
|
|
import { AllDayLayoutEngine } from '../../src/utils/AllDayLayoutEngine';
|
|
|
|
|
import { setupMockDOM, createMockEvent } from '../helpers/dom-helpers';
|
|
|
|
|
|
|
|
|
|
describe('AllDayManager - Layout Engine Integration', () => {
|
|
|
|
|
let layoutEngine: AllDayLayoutEngine;
|
|
|
|
|
|
|
|
|
|
beforeEach(() => {
|
|
|
|
|
setupMockDOM();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
describe('Layout Calculation Integration', () => {
|
|
|
|
|
it('should delegate layout calculation to AllDayLayoutEngine', () => {
|
|
|
|
|
// Test AllDayLayoutEngine directly since calculateAllDayEventsLayout is private
|
|
|
|
|
const event = createMockEvent('test', 'Test Event', '2024-09-24', '2024-09-24');
|
|
|
|
|
const weekDates = ['2024-09-22', '2024-09-23', '2024-09-24', '2024-09-25', '2024-09-26'];
|
|
|
|
|
|
|
|
|
|
layoutEngine = new AllDayLayoutEngine(weekDates);
|
|
|
|
|
const layouts = layoutEngine.calculateLayout([event]);
|
|
|
|
|
|
|
|
|
|
expect(layouts.length).toBe(1);
|
|
|
|
|
expect(layouts[0].calenderEvent.id).toBe('test');
|
|
|
|
|
expect(layouts[0].startColumn).toBe(3); // Sept 24 is column 3
|
|
|
|
|
expect(layouts[0].row).toBe(1);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should handle empty event list', () => {
|
|
|
|
|
const weekDates = ['2024-09-22', '2024-09-23', '2024-09-24', '2024-09-25', '2024-09-26'];
|
|
|
|
|
layoutEngine = new AllDayLayoutEngine(weekDates);
|
|
|
|
|
const layouts = layoutEngine.calculateLayout([]);
|
|
|
|
|
|
|
|
|
|
expect(layouts.length).toBe(0);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should handle empty week dates', () => {
|
|
|
|
|
const event = createMockEvent('test', 'Test Event', '2024-09-24', '2024-09-24');
|
|
|
|
|
layoutEngine = new AllDayLayoutEngine([]);
|
|
|
|
|
const layouts = layoutEngine.calculateLayout([event]);
|
|
|
|
|
|
|
|
|
|
expect(layouts.length).toBe(0);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|