const test = require('node:test'); const assert = require('node:assert/strict'); const NodeClass = require('../../src/nodeClass'); const commands = require('../../src/commands'); const { createRegistry } = require('generalFunctions'); const { makeNodeStub, makeREDStub } = require('../helpers/factories'); test('measurement topic accepts numeric strings and ignores non-numeric objects', async () => { const inst = Object.create(NodeClass.prototype); const node = makeNodeStub(); const calls = []; const source = { mode: 'analog', logger: { warn: () => {}, info: () => {}, debug: () => {}, error: () => {} }, set inputValue(v) { calls.push(v); }, toggleSimulation() {}, toggleOutlierDetection() {}, calibrate() {}, }; inst.node = node; inst.RED = makeREDStub(); inst.source = source; inst._commands = createRegistry(commands, { logger: source.logger }); inst._attachInputHandler(); const onInput = node._handlers.input; await onInput({ topic: 'measurement', payload: '42' }, () => {}, () => {}); await onInput({ topic: 'measurement', payload: { value: 42 } }, () => {}, () => {}); assert.deepEqual(calls, [42]); });