before functional changes by codex
This commit is contained in:
49
test/integration/flow-and-schedule.integration.test.js
Normal file
49
test/integration/flow-and-schedule.integration.test.js
Normal file
@@ -0,0 +1,49 @@
|
||||
const test = require('node:test');
|
||||
const assert = require('node:assert/strict');
|
||||
|
||||
const Monster = require('../../src/specificClass');
|
||||
const {
|
||||
makeMonsterConfig,
|
||||
withMockedDate,
|
||||
makeFlowMeasurementChild,
|
||||
loadRainSeed,
|
||||
loadScheduleSeed,
|
||||
} = require('../helpers/factories');
|
||||
|
||||
test('effective flow uses average of measured and manual flow', () => {
|
||||
withMockedDate('2024-10-15T00:00:00Z', ({ advance }) => {
|
||||
const monster = new Monster(makeMonsterConfig());
|
||||
const child = makeFlowMeasurementChild({ positionVsParent: 'downstream' });
|
||||
monster.registerChild(child, 'measurement');
|
||||
|
||||
child.measurements
|
||||
.type('flow')
|
||||
.variant('measured')
|
||||
.position('downstream')
|
||||
.value(60, Date.now(), 'm3/h');
|
||||
|
||||
monster.handleInput('input_q', { value: 20, unit: 'm3/h' });
|
||||
advance(1000);
|
||||
monster.tick();
|
||||
|
||||
assert.equal(monster.q, 40);
|
||||
});
|
||||
});
|
||||
|
||||
test('rain and schedule payloads update prediction context and next date', () => {
|
||||
withMockedDate('2024-10-15T00:00:00Z', () => {
|
||||
const monster = new Monster(makeMonsterConfig());
|
||||
const rain = loadRainSeed();
|
||||
const schedule = loadScheduleSeed();
|
||||
|
||||
monster.aquonSampleName = '112100';
|
||||
monster.handleInput('rain_data', rain);
|
||||
monster.handleInput('monsternametijden', schedule);
|
||||
|
||||
assert.ok(monster.avgRain >= 0);
|
||||
assert.ok(monster.sumRain >= 0);
|
||||
const nextDate = monster.nextDate instanceof Date ? monster.nextDate.getTime() : Number(monster.nextDate);
|
||||
assert.ok(Number.isFinite(nextDate));
|
||||
assert.ok(nextDate > Date.now());
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user