Calendar/test/managers/AllDayManager.test.ts

44 lines
1.7 KiB
TypeScript
Raw Normal View History

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