mirror of
https://github.com/cpvalente/ontime.git
synced 2026-09-02 12:59:09 +00:00
chore: test custom field renaming
This commit is contained in:
committed by
Carlos Valente
parent
5cf5b2fae3
commit
c4f51192de
@@ -24,6 +24,7 @@ import {
|
|||||||
createCustomField,
|
createCustomField,
|
||||||
editCustomField,
|
editCustomField,
|
||||||
removeCustomField,
|
removeCustomField,
|
||||||
|
customFieldChangelog,
|
||||||
} from '../rundownCache.js';
|
} from '../rundownCache.js';
|
||||||
|
|
||||||
describe('generate()', () => {
|
describe('generate()', () => {
|
||||||
@@ -870,9 +871,56 @@ describe('custom fields', () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const customField = await editCustomField('sound', { label: 'Sound', type: 'string', colour: 'green' });
|
const customField = await editCustomField('sound', { label: 'Sound', type: 'string', colour: 'green' });
|
||||||
|
expect(customFieldChangelog).toStrictEqual({});
|
||||||
|
|
||||||
expect(customField).toStrictEqual(expected);
|
expect(customField).toStrictEqual(expected);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('renames a field to a new label', async () => {
|
||||||
|
const created = await createCustomField({ label: 'Video', type: 'string', colour: 'red' });
|
||||||
|
|
||||||
|
const expected = {
|
||||||
|
lighting: {
|
||||||
|
label: 'Lighting',
|
||||||
|
type: 'string',
|
||||||
|
colour: 'blue',
|
||||||
|
},
|
||||||
|
sound: {
|
||||||
|
label: 'Sound',
|
||||||
|
type: 'string',
|
||||||
|
colour: 'green',
|
||||||
|
},
|
||||||
|
video: {
|
||||||
|
label: 'Video',
|
||||||
|
type: 'string',
|
||||||
|
colour: 'red',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
expect(created).toStrictEqual(expected);
|
||||||
|
|
||||||
|
const expectedAfter = {
|
||||||
|
lighting: {
|
||||||
|
label: 'Lighting',
|
||||||
|
type: 'string',
|
||||||
|
colour: 'blue',
|
||||||
|
},
|
||||||
|
sound: {
|
||||||
|
label: 'Sound',
|
||||||
|
type: 'string',
|
||||||
|
colour: 'green',
|
||||||
|
},
|
||||||
|
av: {
|
||||||
|
label: 'AV',
|
||||||
|
type: 'string',
|
||||||
|
colour: 'red',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const customField = await editCustomField('video', { label: 'AV', type: 'string', colour: 'red' });
|
||||||
|
expect(customField).toStrictEqual(expectedAfter);
|
||||||
|
expect(customFieldChangelog).toStrictEqual({ video: 'av' });
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('removeCustomField()', () => {
|
describe('removeCustomField()', () => {
|
||||||
@@ -883,6 +931,11 @@ describe('custom fields', () => {
|
|||||||
type: 'string',
|
type: 'string',
|
||||||
colour: 'blue',
|
colour: 'blue',
|
||||||
},
|
},
|
||||||
|
av: {
|
||||||
|
label: 'AV',
|
||||||
|
type: 'string',
|
||||||
|
colour: 'red',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const customField = await removeCustomField('sound');
|
const customField = await removeCustomField('sound');
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ let lastEnd: MaybeNumber = null;
|
|||||||
let links: Record<EventID, EventID> = {};
|
let links: Record<EventID, EventID> = {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Object that contains renamings to custom fields
|
* Object that contains reference of renamed custom fields
|
||||||
* Used to rename the custom fields in the events
|
* Used to rename the custom fields in the events
|
||||||
* @example
|
* @example
|
||||||
* {
|
* {
|
||||||
@@ -47,7 +47,7 @@ let links: Record<EventID, EventID> = {};
|
|||||||
* lighting: lx
|
* lighting: lx
|
||||||
* }
|
* }
|
||||||
*/
|
*/
|
||||||
const customFieldChangelog = {};
|
export const customFieldChangelog = {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Keep track of which custom fields are used.
|
* Keep track of which custom fields are used.
|
||||||
@@ -176,9 +176,7 @@ type RundownCache = {
|
|||||||
*/
|
*/
|
||||||
export function get(): Readonly<RundownCache> {
|
export function get(): Readonly<RundownCache> {
|
||||||
if (isStale) {
|
if (isStale) {
|
||||||
console.time('rundownCache__init');
|
|
||||||
generate();
|
generate();
|
||||||
console.timeEnd('rundownCache__init');
|
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
rundown,
|
rundown,
|
||||||
@@ -194,9 +192,7 @@ export function get(): Readonly<RundownCache> {
|
|||||||
*/
|
*/
|
||||||
export function getMetadata() {
|
export function getMetadata() {
|
||||||
if (isStale) {
|
if (isStale) {
|
||||||
console.time('rundownCache__init');
|
|
||||||
generate();
|
generate();
|
||||||
console.timeEnd('rundownCache__init');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -237,9 +233,7 @@ export function mutateCache<T extends object>(mutation: MutatingFn<T>) {
|
|||||||
|
|
||||||
// schedule a non priority cache update
|
// schedule a non priority cache update
|
||||||
setImmediate(() => {
|
setImmediate(() => {
|
||||||
console.time('rundownCache__init');
|
|
||||||
get();
|
get();
|
||||||
console.timeEnd('rundownCache__init');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// defer writing to the database
|
// defer writing to the database
|
||||||
@@ -410,14 +404,12 @@ function invalidateIfUsed(label: CustomFieldLabel) {
|
|||||||
// ... and schedule a cache update
|
// ... and schedule a cache update
|
||||||
// schedule a non priority cache update
|
// schedule a non priority cache update
|
||||||
setImmediate(() => {
|
setImmediate(() => {
|
||||||
console.time('rundownCache__init');
|
|
||||||
generate();
|
generate();
|
||||||
console.timeEnd('rundownCache__init');
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Scheduløes a non priority custom field persist
|
* Schedules a non priority custom field persist
|
||||||
* @param persistedCustomFields
|
* @param persistedCustomFields
|
||||||
*/
|
*/
|
||||||
function scheduleCustomFieldPersist(persistedCustomFields: CustomFields) {
|
function scheduleCustomFieldPersist(persistedCustomFields: CustomFields) {
|
||||||
|
|||||||
Reference in New Issue
Block a user