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