mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-11 10:23:54 +00:00
Deps migration (#1988)
* chore: migrate eslint to oxlint * chore: migrate prettier to oxfmt * chore: migrate typescript * chore: toThrow should have a expected value * chore: cast test value as Day * chore: small title fix * chore: mocks should be hoisted * chore: incorrect async useage * chore: test should be inside description * chore: test sohuld include an expeced * chore: oxfmt --------- Co-authored-by: alex-Arc <omnivox@LAPTOP-RC5SNBVV.localdomain>
This commit is contained in:
@@ -1,140 +1,141 @@
|
||||
import { CustomFields, EntryCustomFields, OntimeDelay, OntimeEvent } from 'ontime-types';
|
||||
import { isValidChangeProperty } from '../integration.utils.js';
|
||||
|
||||
describe('isValidChangeProperty()', () => {
|
||||
test('allows changing a valid event property with valid value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
} as OntimeEvent;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'duration', 123, {})).toBeTruthy();
|
||||
});
|
||||
|
||||
test('forbids changing a valid event property with undefined value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
} as OntimeEvent;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'duration', undefined, {})).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids changing a non-existing property', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
} as OntimeEvent;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'missing', 123, {})).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids changing customValues in event without custom fields', () => {
|
||||
const testDelay = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
} as OntimeDelay;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testDelay, 'custom:test', 123, testCustomFields)).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids changing a non-existing custom value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
field: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'custom:test', 123, {})).toBeFalsy();
|
||||
});
|
||||
|
||||
test('allows changing an existing custom value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
test: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'custom:test', 123, testCustomFields)).toBeTruthy();
|
||||
});
|
||||
|
||||
test('forbids changing a custom field with a missing value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
test: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'custom:', 123, testCustomFields)).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids references to prototype properties in custom object', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
test: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'custom:toString', 123, testCustomFields)).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids references to prototype properties in object', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
test: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'toString', 123, testCustomFields)).toBeFalsy();
|
||||
});
|
||||
});
|
||||
import { CustomFields, EntryCustomFields, OntimeDelay, OntimeEvent } from 'ontime-types';
|
||||
|
||||
import { isValidChangeProperty } from '../integration.utils.js';
|
||||
|
||||
describe('isValidChangeProperty()', () => {
|
||||
test('allows changing a valid event property with valid value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
} as OntimeEvent;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'duration', 123, {})).toBeTruthy();
|
||||
});
|
||||
|
||||
test('forbids changing a valid event property with undefined value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
} as OntimeEvent;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'duration', undefined, {})).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids changing a non-existing property', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
} as OntimeEvent;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'missing', 123, {})).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids changing customValues in event without custom fields', () => {
|
||||
const testDelay = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
} as OntimeDelay;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testDelay, 'custom:test', 123, testCustomFields)).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids changing a non-existing custom value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
field: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'custom:test', 123, {})).toBeFalsy();
|
||||
});
|
||||
|
||||
test('allows changing an existing custom value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
test: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'custom:test', 123, testCustomFields)).toBeTruthy();
|
||||
});
|
||||
|
||||
test('forbids changing a custom field with a missing value', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
test: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'custom:', 123, testCustomFields)).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids references to prototype properties in custom object', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
test: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'custom:toString', 123, testCustomFields)).toBeFalsy();
|
||||
});
|
||||
|
||||
test('forbids references to prototype properties in object', () => {
|
||||
const testEvent = {
|
||||
id: 'test',
|
||||
duration: 111,
|
||||
custom: {
|
||||
test: 'test',
|
||||
} as EntryCustomFields,
|
||||
} as OntimeEvent;
|
||||
|
||||
const testCustomFields = {
|
||||
test: {
|
||||
type: 'text',
|
||||
colour: '#ffffff',
|
||||
label: 'Test Field',
|
||||
},
|
||||
} satisfies CustomFields;
|
||||
|
||||
expect(isValidChangeProperty(testEvent, 'toString', 123, testCustomFields)).toBeFalsy();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -8,9 +8,12 @@ import {
|
||||
SimplePlayback,
|
||||
} from 'ontime-types';
|
||||
import { MILLIS_PER_HOUR } from 'ontime-utils';
|
||||
|
||||
import { DeepPartial } from 'ts-essentials';
|
||||
|
||||
import { socket } from '../adapters/WebsocketAdapter.js';
|
||||
import { getCurrentRundown, getProjectCustomFields } from '../api-data/rundown/rundown.dao.js';
|
||||
import { editEntry } from '../api-data/rundown/rundown.service.js';
|
||||
import { willCauseRegeneration } from '../api-data/rundown/rundown.utils.js';
|
||||
import { ONTIME_VERSION } from '../ONTIME_VERSION.js';
|
||||
import { auxTimerService } from '../services/aux-timer-service/AuxTimerService.js';
|
||||
import * as messageService from '../services/message-service/message.service.js';
|
||||
@@ -18,12 +21,8 @@ import { validateMessage, validateTimerMessage } from '../services/message-servi
|
||||
import { runtimeService } from '../services/runtime-service/runtime.service.js';
|
||||
import { eventStore } from '../stores/EventStore.js';
|
||||
import * as assert from '../utils/assert.js';
|
||||
import { parseProperty, isValidChangeProperty } from './integration.utils.js';
|
||||
import { socket } from '../adapters/WebsocketAdapter.js';
|
||||
import { coerceEnum } from '../utils/coerceType.js';
|
||||
import { editEntry } from '../api-data/rundown/rundown.service.js';
|
||||
import { willCauseRegeneration } from '../api-data/rundown/rundown.utils.js';
|
||||
import { getCurrentRundown, getProjectCustomFields } from '../api-data/rundown/rundown.dao.js';
|
||||
import { isValidChangeProperty, parseProperty } from './integration.utils.js';
|
||||
|
||||
let lastRequest: Date | null = null;
|
||||
|
||||
|
||||
@@ -5,16 +5,14 @@
|
||||
*
|
||||
*/
|
||||
|
||||
import { ErrorResponse, LogOrigin } from 'ontime-types';
|
||||
|
||||
import express, { type Request, type Response } from 'express';
|
||||
|
||||
import { logger } from '../classes/Logger.js';
|
||||
import { integrationPayloadFromPath } from '../adapters/utils/parse.js';
|
||||
|
||||
import { dispatchFromAdapter } from './integration.controller.js';
|
||||
import { ErrorResponse, LogOrigin } from 'ontime-types';
|
||||
import { getErrorMessage } from 'ontime-utils';
|
||||
|
||||
import { integrationPayloadFromPath } from '../adapters/utils/parse.js';
|
||||
import { logger } from '../classes/Logger.js';
|
||||
import { isEmptyObject } from '../utils/parserUtils.js';
|
||||
import { dispatchFromAdapter } from './integration.controller.js';
|
||||
|
||||
export const integrationRouter = express.Router();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user