mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-15 12:23:51 +00:00
Feat/132 (#198)
This commit is contained in:
@@ -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 = [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user