fix: sanitise cue import (#519)

* fix: sanitise cue import
This commit is contained in:
Carlos Valente
2023-09-11 21:06:32 +02:00
committed by GitHub
parent 93fb48ea1c
commit 0bb09dd039
2 changed files with 29 additions and 7 deletions
@@ -269,6 +269,24 @@ describe('test json parser with valid def', () => {
}); });
describe('test parser edge cases', () => { describe('test parser edge cases', () => {
it('stringifies necessary values', async () => {
const testData = {
rundown: [
{
cue: 101,
type: 'event',
},
{
cue: 101.1,
type: 'event',
},
],
};
const parseResponse = await parseJson(testData);
expect(typeof (parseResponse.rundown[0] as OntimeEvent).cue).toBe('string');
expect(typeof (parseResponse.rundown[1] as OntimeEvent).cue).toBe('string');
});
it('generates missing ids', async () => { it('generates missing ids', async () => {
const testData = { const testData = {
rundown: [ rundown: [
@@ -579,6 +597,7 @@ describe('test parseExcel function', () => {
'user8:test8', 'user8:test8',
'user9:test9', 'user9:test9',
'Colour', 'Colour',
'cue',
], ],
[ [
'1899-12-30T07:00:00.000Z', '1899-12-30T07:00:00.000Z',
@@ -602,6 +621,7 @@ describe('test parseExcel function', () => {
'a8', 'a8',
'a9', 'a9',
'red', 'red',
101,
], ],
[ [
'1899-12-30T08:00:00.000Z', '1899-12-30T08:00:00.000Z',
@@ -625,6 +645,7 @@ describe('test parseExcel function', () => {
'', '',
'', '',
'#F00', '#F00',
102,
], ],
[], [],
]; ];
@@ -662,6 +683,7 @@ describe('test parseExcel function', () => {
user9: 'a9', user9: 'a9',
colour: 'red', colour: 'red',
type: 'event', type: 'event',
cue: '101',
}, },
{ {
//timeStart: 32400000, //timeStart: 32400000,
@@ -678,6 +700,7 @@ describe('test parseExcel function', () => {
user5: 'b5', user5: 'b5',
colour: '#F00', colour: '#F00',
type: 'event', type: 'event',
cue: '102',
}, },
]; ];
+6 -7
View File
@@ -100,19 +100,19 @@ export const parseExcel = async (excelData) => {
} else if (j === timeEndIndex) { } else if (j === timeEndIndex) {
event.timeEnd = parseExcelDate(column); event.timeEnd = parseExcelDate(column);
} else if (j === titleIndex) { } else if (j === titleIndex) {
event.title = column; event.title = makeString(column, '');
} else if (j === cueIndex) { } else if (j === cueIndex) {
event.cue = column; event.cue = makeString(column, '');
} else if (j === presenterIndex) { } else if (j === presenterIndex) {
event.presenter = column; event.presenter = makeString(column, '');
} else if (j === subtitleIndex) { } else if (j === subtitleIndex) {
event.subtitle = column; event.subtitle = makeString(column, '');
} else if (j === isPublicIndex) { } else if (j === isPublicIndex) {
event.isPublic = Boolean(column); event.isPublic = Boolean(column);
} else if (j === skipIndex) { } else if (j === skipIndex) {
event.skip = Boolean(column); event.skip = Boolean(column);
} else if (j === notesIndex) { } else if (j === notesIndex) {
event.note = column; event.note = makeString(column, '');
} else if (j === endActionIndex) { } else if (j === endActionIndex) {
if (column === '') { if (column === '') {
event.endAction = EndAction.None; event.endAction = EndAction.None;
@@ -326,7 +326,6 @@ export const parseJson = async (jsonData, enforce = false): Promise<DatabaseMode
export const validateEvent = (eventArgs: Partial<OntimeEvent>, cueFallback: string) => { export const validateEvent = (eventArgs: Partial<OntimeEvent>, cueFallback: string) => {
// ensure id is defined and unique // ensure id is defined and unique
const id = eventArgs.id || generateId(); const id = eventArgs.id || generateId();
const cue = eventArgs.cue || cueFallback;
let event = null; let event = null;
@@ -365,7 +364,7 @@ export const validateEvent = (eventArgs: Partial<OntimeEvent>, cueFallback: stri
user9: makeString(e.user9, d.user9), user9: makeString(e.user9, d.user9),
colour: makeString(e.colour, d.colour), colour: makeString(e.colour, d.colour),
id, id,
cue, cue: makeString(e.cue, cueFallback),
type: 'event', type: 'event',
}; };
} }