updates
This commit is contained in:
@@ -12,6 +12,28 @@ test('setpoint rejects negative inputs without throwing', async () => {
|
||||
});
|
||||
});
|
||||
|
||||
test('setpoint is constrained to safe movement/curve bounds', async () => {
|
||||
const machine = new Machine(makeMachineConfig(), makeStateConfig({ state: { current: 'operational' } }));
|
||||
const requested = [];
|
||||
machine.state.moveTo = async (target) => {
|
||||
requested.push(target);
|
||||
};
|
||||
|
||||
const stateMin = machine.state.movementManager.minPosition;
|
||||
const stateMax = machine.state.movementManager.maxPosition;
|
||||
const curveMin = machine.predictFlow.currentFxyXMin;
|
||||
const curveMax = machine.predictFlow.currentFxyXMax;
|
||||
const min = Math.max(stateMin, curveMin);
|
||||
const max = Math.min(stateMax, curveMax);
|
||||
|
||||
await machine.setpoint(min - 100);
|
||||
await machine.setpoint(max + 100);
|
||||
|
||||
assert.equal(requested.length, 2);
|
||||
assert.equal(requested[0], min);
|
||||
assert.equal(requested[1], max);
|
||||
});
|
||||
|
||||
test('nodeClass _updateNodeStatus returns error status on internal failure', () => {
|
||||
const inst = Object.create(NodeClass.prototype);
|
||||
const node = makeNodeStub();
|
||||
@@ -29,3 +51,24 @@ test('nodeClass _updateNodeStatus returns error status on internal failure', ()
|
||||
assert.equal(status.text, 'Status Error');
|
||||
assert.equal(node._errors.length, 1);
|
||||
});
|
||||
|
||||
test('measurement handlers reject incompatible units', () => {
|
||||
const machine = new Machine(makeMachineConfig(), makeStateConfig({ state: { current: 'operational' } }));
|
||||
|
||||
assert.equal(machine.isUnitValidForType('flow', 'm3/h'), true);
|
||||
assert.equal(machine.isUnitValidForType('flow', 'mbar'), false);
|
||||
|
||||
machine.updateMeasuredFlow(100, 'downstream', {
|
||||
timestamp: Date.now(),
|
||||
unit: 'mbar',
|
||||
childName: 'bad-ft',
|
||||
});
|
||||
|
||||
const measuredFlow = machine.measurements
|
||||
.type('flow')
|
||||
.variant('measured')
|
||||
.position('downstream')
|
||||
.getCurrentValue();
|
||||
|
||||
assert.equal(measuredFlow, null);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user