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; + }); } /**