mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-18 21:54:09 +00:00
refactor: process events in rundown
This commit is contained in:
@@ -0,0 +1,162 @@
|
|||||||
|
import { OntimeBlock, OntimeEvent, SupportedEvent } from 'ontime-types';
|
||||||
|
|
||||||
|
import { makeRundownMetadata } from '../rundown.utils';
|
||||||
|
|
||||||
|
describe('makeRundownMetadata()', () => {
|
||||||
|
it('processes nested rundown data', () => {
|
||||||
|
const selectedEventId = '12';
|
||||||
|
const demoEvents = {
|
||||||
|
'1': {
|
||||||
|
id: '1',
|
||||||
|
type: SupportedEvent.Event,
|
||||||
|
parent: null,
|
||||||
|
timeStart: 0,
|
||||||
|
timeEnd: 1,
|
||||||
|
duration: 1,
|
||||||
|
dayOffset: 0,
|
||||||
|
gap: 0,
|
||||||
|
skip: false,
|
||||||
|
linkStart: false,
|
||||||
|
} as OntimeEvent,
|
||||||
|
block: {
|
||||||
|
id: 'block',
|
||||||
|
type: SupportedEvent.Block,
|
||||||
|
events: ['11, 12, 13'],
|
||||||
|
} as OntimeBlock,
|
||||||
|
'11': {
|
||||||
|
id: '11',
|
||||||
|
type: SupportedEvent.Event,
|
||||||
|
parent: 'block',
|
||||||
|
timeStart: 10,
|
||||||
|
timeEnd: 11,
|
||||||
|
duration: 1,
|
||||||
|
dayOffset: 0,
|
||||||
|
gap: 10,
|
||||||
|
skip: false,
|
||||||
|
linkStart: false,
|
||||||
|
} as OntimeEvent,
|
||||||
|
'12': {
|
||||||
|
id: '12',
|
||||||
|
type: SupportedEvent.Event,
|
||||||
|
parent: 'block',
|
||||||
|
timeStart: 11,
|
||||||
|
timeEnd: 12,
|
||||||
|
duration: 1,
|
||||||
|
dayOffset: 0,
|
||||||
|
gap: 0,
|
||||||
|
skip: false,
|
||||||
|
linkStart: true,
|
||||||
|
} as OntimeEvent,
|
||||||
|
'13': {
|
||||||
|
id: '13',
|
||||||
|
type: SupportedEvent.Event,
|
||||||
|
parent: 'block',
|
||||||
|
timeStart: 12,
|
||||||
|
timeEnd: 13,
|
||||||
|
duration: 1,
|
||||||
|
dayOffset: 0,
|
||||||
|
gap: 0,
|
||||||
|
skip: false,
|
||||||
|
linkStart: true,
|
||||||
|
} as OntimeEvent,
|
||||||
|
'2': {
|
||||||
|
id: '2',
|
||||||
|
type: SupportedEvent.Event,
|
||||||
|
parent: null,
|
||||||
|
timeStart: 20,
|
||||||
|
timeEnd: 21,
|
||||||
|
duration: 1,
|
||||||
|
dayOffset: 0,
|
||||||
|
gap: 7,
|
||||||
|
skip: false,
|
||||||
|
linkStart: false,
|
||||||
|
} as OntimeEvent,
|
||||||
|
};
|
||||||
|
|
||||||
|
const process = makeRundownMetadata(selectedEventId);
|
||||||
|
|
||||||
|
expect(process(demoEvents['1'])).toStrictEqual({
|
||||||
|
previousEvent: null,
|
||||||
|
latestEvent: demoEvents['1'],
|
||||||
|
previousEntryId: null,
|
||||||
|
thisId: demoEvents['1'].id,
|
||||||
|
eventIndex: 1, // UI indexes are 1 based
|
||||||
|
isPast: true,
|
||||||
|
isNext: false,
|
||||||
|
isNextDay: false,
|
||||||
|
totalGap: 0,
|
||||||
|
isLinkedToLoaded: false,
|
||||||
|
isLoaded: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(process(demoEvents['block'])).toMatchObject({
|
||||||
|
previousEvent: demoEvents['1'],
|
||||||
|
latestEvent: demoEvents['1'],
|
||||||
|
previousEntryId: demoEvents['1'].id,
|
||||||
|
thisId: demoEvents['block'].id,
|
||||||
|
eventIndex: 1,
|
||||||
|
isPast: true,
|
||||||
|
isNext: false,
|
||||||
|
isNextDay: false,
|
||||||
|
totalGap: 0,
|
||||||
|
isLinkedToLoaded: false,
|
||||||
|
isLoaded: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(process(demoEvents['11'])).toMatchObject({
|
||||||
|
previousEvent: demoEvents['1'],
|
||||||
|
latestEvent: demoEvents['11'],
|
||||||
|
previousEntryId: demoEvents['block'].id,
|
||||||
|
thisId: demoEvents['11'].id,
|
||||||
|
eventIndex: 2,
|
||||||
|
isPast: true,
|
||||||
|
isNext: false,
|
||||||
|
isNextDay: false,
|
||||||
|
totalGap: 10,
|
||||||
|
isLinkedToLoaded: false,
|
||||||
|
isLoaded: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(process(demoEvents['12'])).toMatchObject({
|
||||||
|
previousEvent: demoEvents['11'],
|
||||||
|
latestEvent: demoEvents['12'],
|
||||||
|
previousEntryId: demoEvents['11'].id,
|
||||||
|
thisId: demoEvents['12'].id,
|
||||||
|
eventIndex: 3,
|
||||||
|
isPast: false,
|
||||||
|
isNext: false,
|
||||||
|
isNextDay: false,
|
||||||
|
totalGap: 10,
|
||||||
|
isLinkedToLoaded: false,
|
||||||
|
isLoaded: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(process(demoEvents['13'])).toMatchObject({
|
||||||
|
previousEvent: demoEvents['12'],
|
||||||
|
latestEvent: demoEvents['13'],
|
||||||
|
previousEntryId: demoEvents['12'].id,
|
||||||
|
thisId: demoEvents['13'].id,
|
||||||
|
eventIndex: 4,
|
||||||
|
isPast: false,
|
||||||
|
isNext: false,
|
||||||
|
isNextDay: false,
|
||||||
|
totalGap: 10,
|
||||||
|
isLinkedToLoaded: true,
|
||||||
|
isLoaded: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
expect(process(demoEvents['2'])).toMatchObject({
|
||||||
|
previousEvent: demoEvents['13'],
|
||||||
|
latestEvent: demoEvents['2'],
|
||||||
|
previousEntryId: demoEvents['13'].id,
|
||||||
|
thisId: demoEvents['2'].id,
|
||||||
|
eventIndex: 5,
|
||||||
|
isPast: false,
|
||||||
|
isNext: false,
|
||||||
|
isNextDay: false,
|
||||||
|
totalGap: 17,
|
||||||
|
isLinkedToLoaded: false,
|
||||||
|
isLoaded: false,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user