it('should log an error and exit if message does not match schema', () => { const invalidMessage = Buffer.from('{"invalidField": "value"}') serializeProtobufToBuffer(invalidMessage, mockProtoPath, 'SensorData') expect(mockExit).toHaveBeenCalledWith(1) })
yarn start yarn run v1.22.22 $ node build/index.js
Test 1: Correct Data Verification succeeded: { deviceId: 'sensor-001', temperature: 22.5 }
Test 2: Incorrect Data Type Verification failed: deviceId: string expected
Test 3: Missing Required Field Verification succeeded: { temperature: 22.5 }
Test 4: Extra Field Verification succeeded: { deviceId: 'sensor-001', temperature: 22.5, humidity: 40 }
Test 5: Completely Invalid Data Verification succeeded: { invalidField: 'value' }
Test 6: Unstructured message Verification failed: object expected
Test 7: Random Buffer Decoded message: SensorData { deviceId: '' } Verification succeeded: SensorData { deviceId: '' }
Test 8: Stringified JSON Decoding failed: RangeError: index out of range: 3 + 100 > 26 at indexOutOfRange (/home/last/Coding/mqtt/testProto/node_modules/protobufjs/src/reader.js:13:12) at BufferReader.skip (/home/last/Coding/mqtt/testProto/node_modules/protobufjs/src/reader.js:343:19) at Reader.skipType (/home/last/Coding/mqtt/testProto/node_modules/protobufjs/src/reader.js:369:18) at Reader.skipType (/home/last/Coding/mqtt/testProto/node_modules/protobufjs/src/reader.js:373:22) at Type.SensorData$decode [as decode] (eval at Codegen (/home/last/Coding/mqtt/testProto/node_modules/@protobufjs/codegen/index.js:50:33), <anonymous>:19:5) at Object.<anonymous> (/home/last/Coding/mqtt/testProto/build/index.js:90:39) at Module._compile (node:internal/modules/cjs/loader:1364:14) at Module._extensions..js (node:internal/modules/cjs/loader:1422:10) at Module.load (node:internal/modules/cjs/loader:1203:32) at Module._load (node:internal/modules/cjs/loader:1019:12) Done in 0.08s.