This commit is contained in:
Carlos Valente
2022-09-19 21:15:06 +02:00
committed by GitHub
parent fc0cbf6134
commit 70436059d8
71 changed files with 2001 additions and 1175 deletions
+30 -1
View File
@@ -2,7 +2,7 @@ import jest from 'jest-mock';
import { dbModelv1, dbModelv1 as dbModel } from '../../models/dataModel.js';
import { isStringEmpty, parseExcel_v1, parseJson_v1, validateEvent_v1 } from '../parser.js';
import { makeString, validateDuration } from '../parserUtils.js';
import { parseAliases_v1, parseUserFields_v1 } from '../parserUtils_v1.js';
import { parseAliases_v1, parseUserFields_v1, parseViews_v1 } from '../parserUtils_v1.js';
describe('test json parser with valid def', () => {
const testData = {
@@ -817,6 +817,35 @@ describe('test userFields import', () => {
});
});
describe('test views import', () => {
it('imports data from file', () => {
const testData = {
events: [],
settings: {
app: 'ontime',
version: 1,
},
views: {
overrideStyles: true,
},
};
const parsed = parseViews_v1(testData);
expect(parsed).toStrictEqual(testData.views);
});
it('imports defaults to model', () => {
const testData = {
events: [],
settings: {
app: 'ontime',
version: 1,
},
};
const parsed = parseViews_v1(testData, true);
expect(parsed).toStrictEqual(dbModelv1.views);
});
});
describe('test validateDuration()', () => {
describe('handles valid inputs', () => {
const valid = [
+3
View File
@@ -11,6 +11,7 @@ import {
parseOsc_v1,
parseSettings_v1,
parseUserFields_v1,
parseViews_v1,
} from './parserUtils_v1.js';
import { parseExcelDate } from './time.js';
import { generateId } from './generate_id.js';
@@ -272,6 +273,8 @@ export const parseJson_v1 = async (jsonData, enforce = false) => {
returnData.event = parseEvent_v1(jsonData, enforce);
// Settings handled partially
returnData.settings = parseSettings_v1(jsonData, enforce);
// View settings handled partially
returnData.views = parseViews_v1(jsonData, enforce);
// Import OSC settings if any
returnData.osc = parseOsc_v1(jsonData, enforce);
// Import HTTP settings if any
+27
View File
@@ -118,6 +118,33 @@ export const parseSettings_v1 = (data, enforce) => {
return newSettings;
};
/**
* Parse settings portion of an entry
* @param {object} data - data object
* @param {boolean} enforce - whether to create a definition if one is missing
* @returns {object} - event object data
*/
export const parseViews_v1 = (data, enforce) => {
let newViews = {};
if ('views' in data) {
console.log('Found view definition, importing...');
const v = data.views;
const viewSettings = {
overrideStyles: v.overrideStyles ?? dbModelv1.views.overrideStyles,
};
// write to db
newViews = {
...viewSettings,
};
} else if (enforce) {
newViews = dbModelv1.views;
console.log(`Created view object in db`);
}
return newViews;
};
/**
* Parse osc portion of an entry
* @param {object} data - data object