chore: test custom field renaming

This commit is contained in:
Carlos Valente
2024-04-22 14:04:46 +02:00
committed by Carlos Valente
parent 5cf5b2fae3
commit c4f51192de
2 changed files with 56 additions and 11 deletions
@@ -24,6 +24,7 @@ import {
createCustomField,
editCustomField,
removeCustomField,
customFieldChangelog,
} from '../rundownCache.js';
describe('generate()', () => {
@@ -870,9 +871,56 @@ describe('custom fields', () => {
};
const customField = await editCustomField('sound', { label: 'Sound', type: 'string', colour: 'green' });
expect(customFieldChangelog).toStrictEqual({});
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()', () => {
@@ -883,6 +931,11 @@ describe('custom fields', () => {
type: 'string',
colour: 'blue',
},
av: {
label: 'AV',
type: 'string',
colour: 'red',
},
};
const customField = await removeCustomField('sound');
@@ -39,7 +39,7 @@ let lastEnd: MaybeNumber = null;
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
* @example
* {
@@ -47,7 +47,7 @@ let links: Record<EventID, EventID> = {};
* lighting: lx
* }
*/
const customFieldChangelog = {};
export const customFieldChangelog = {};
/**
* Keep track of which custom fields are used.
@@ -176,9 +176,7 @@ type RundownCache = {
*/
export function get(): Readonly<RundownCache> {
if (isStale) {
console.time('rundownCache__init');
generate();
console.timeEnd('rundownCache__init');
}
return {
rundown,
@@ -194,9 +192,7 @@ export function get(): Readonly<RundownCache> {
*/
export function getMetadata() {
if (isStale) {
console.time('rundownCache__init');
generate();
console.timeEnd('rundownCache__init');
}
return {
@@ -237,9 +233,7 @@ export function mutateCache<T extends object>(mutation: MutatingFn<T>) {
// schedule a non priority cache update
setImmediate(() => {
console.time('rundownCache__init');
get();
console.timeEnd('rundownCache__init');
});
// defer writing to the database
@@ -410,14 +404,12 @@ function invalidateIfUsed(label: CustomFieldLabel) {
// ... and schedule a cache update
// schedule a non priority cache update
setImmediate(() => {
console.time('rundownCache__init');
generate();
console.timeEnd('rundownCache__init');
});
}
/**
* Scheduløes a non priority custom field persist
* Schedules a non priority custom field persist
* @param persistedCustomFields
*/
function scheduleCustomFieldPersist(persistedCustomFields: CustomFields) {