fix; osc subscriptions (#392)

* style: fix typo

* refactor: convert to typescript

* refactor: convert to typescript

* refactor: create patch for osc subscriptions

* fix: issue with subscription invalidation
This commit is contained in:
Carlos Valente
2023-05-19 22:20:00 +02:00
committed by GitHub
parent 8bf223dee6
commit 6617eb1f0f
15 changed files with 227 additions and 106 deletions
@@ -1,4 +1,4 @@
import { validateOscSubscription } from '../parserFunctions.ts';
import { validateOscObject } from '../parserFunctions.ts';
test('validateOscSubscription()', () => {
it('should return true when given a valid OscSubscription', () => {
@@ -11,35 +11,35 @@ test('validateOscSubscription()', () => {
onFinish: [{ id: '6', message: 'test', enabled: false }],
};
const result = validateOscSubscription(validSubscription);
const result = validateOscObject(validSubscription);
expect(result).toBe(true);
});
it('should return false when given undefined', () => {
const result = validateOscSubscription(undefined);
const result = validateOscObject(undefined);
expect(result).toBe(false);
});
it('should return false when given null', () => {
const result = validateOscSubscription(null);
const result = validateOscObject(null);
expect(result).toBe(false);
});
it('should return false when given an empty object', () => {
const result = validateOscSubscription({});
const result = validateOscObject({});
expect(result).toBe(false);
});
it('should return false when given an empty array', () => {
const result = validateOscSubscription([]);
const result = validateOscObject([]);
expect(result).toBe(false);
});
it('should return false when given an object that is not an OscSubscription', () => {
const invalidObject = { foo: 'bar' };
const result = validateOscSubscription(invalidObject);
const result = validateOscObject(invalidObject);
expect(result).toBe(false);
});
@@ -54,7 +54,7 @@ test('validateOscSubscription()', () => {
onFinish: [{ id: '6', message: 'test', enabled: false }],
};
const result = validateOscSubscription(invalidSubscription);
const result = validateOscObject(invalidSubscription);
expect(result).toBe(false);
});
@@ -69,7 +69,7 @@ test('validateOscSubscription()', () => {
onFinish: [{ id: '6', message: 'test', enabled: 'not a boolean' }],
};
const result = validateOscSubscription(invalidSubscription);
const result = validateOscObject(invalidSubscription);
expect(result).toBe(false);
});
@@ -84,7 +84,7 @@ test('validateOscSubscription()', () => {
onFinish: [{ id: '6', message: 'test', enabled: 'not a boolean' }],
};
const result = validateOscSubscription(invalidSubscription);
const result = validateOscObject(invalidSubscription);
expect(result).toBe(true);
});
+17 -3
View File
@@ -5,6 +5,7 @@ import {
OntimeRundown,
OSCSettings,
OscSubscription,
OscSubscriptionOptions,
Settings,
TimerLifeCycle,
UserFields,
@@ -164,11 +165,24 @@ export const parseViewSettings = (data, enforce): ViewSettings => {
return newViews as ViewSettings;
};
/**
* Parses and validates subscription entry
* @param data
*/
export const validateOscSubscriptionEntry = (data: OscSubscriptionOptions): boolean => {
for (const subscription in data) {
if (typeof data[subscription].message !== 'string' || typeof data[subscription].enabled !== 'boolean') {
return false;
}
}
return true;
};
/**
* Parses and validates subscription object
* @param data
*/
export const validateOscSubscription = (data: OscSubscription): boolean => {
export const validateOscObject = (data: OscSubscription): boolean => {
if (!data) {
return false;
}
@@ -178,7 +192,7 @@ export const validateOscSubscription = (data: OscSubscription): boolean => {
return false;
}
for (const subscription of data[key]) {
if (!subscription.id || typeof subscription.message !== 'string' || typeof subscription.enabled !== 'boolean') {
if (typeof subscription.message !== 'string' || typeof subscription.enabled !== 'boolean') {
return false;
}
}
@@ -194,7 +208,7 @@ export const parseOsc = (data: { osc?: Partial<OSCSettings> }, enforce: boolean)
console.log('Found OSC definition, importing...');
const loadedConfig = data?.osc || {};
const validatedSubscriptions = validateOscSubscription(loadedConfig.subscriptions)
const validatedSubscriptions = validateOscObject(loadedConfig.subscriptions)
? loadedConfig.subscriptions
: dbModel.osc.subscriptions;