From db395852b6fc6cd5c265a9282e5eee5bd6f951b7 Mon Sep 17 00:00:00 2001 From: Joe Boccanfuso <109477394+jbocce@users.noreply.github.com> Date: Mon, 30 Oct 2023 10:44:21 -0400 Subject: [PATCH] fix(measurement service): Implemented correct check of schema keys in _isValidMeasurment. (#3750) --- .../MeasurementService.test.js | 19 +++++++++++++++++++ .../MeasurementService/MeasurementService.ts | 6 +++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/platform/core/src/services/MeasurementService/MeasurementService.test.js b/platform/core/src/services/MeasurementService/MeasurementService.test.js index 93517d58c..51ec9b66d 100644 --- a/platform/core/src/services/MeasurementService/MeasurementService.test.js +++ b/platform/core/src/services/MeasurementService/MeasurementService.test.js @@ -324,6 +324,25 @@ describe('MeasurementService.js', () => { }).toThrow(); }); + it('throws Error if adding measurement with unknown schema key', () => { + measurementService.addMapping( + source, + annotationType, + matchingCriteria, + toSourceSchema, + () => { + return { + ...measurement, + invalidSchemaKey: 0, + }; + } + ); + + expect(() => { + source.annotationToMeasurement(annotationType, measurement); + }).toThrow(); + }); + it('updates existing measurement', () => { measurementService.addMapping( source, diff --git a/platform/core/src/services/MeasurementService/MeasurementService.ts b/platform/core/src/services/MeasurementService/MeasurementService.ts index dde9ff4d2..30228a251 100644 --- a/platform/core/src/services/MeasurementService/MeasurementService.ts +++ b/platform/core/src/services/MeasurementService/MeasurementService.ts @@ -691,14 +691,14 @@ class MeasurementService extends PubSubService { * @return {boolean} Measurement validation */ _isValidMeasurement(measurementData) { - Object.keys(measurementData).forEach(key => { + return Object.keys(measurementData).every(key => { if (!MEASUREMENT_SCHEMA_KEYS.includes(key)) { log.warn(`Invalid measurement key: ${key}`); return false; } - }); - return true; + return true; + }); } /**