You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

37 lines
1.6 KiB
JavaScript

const assert = require('node:assert/strict');
const test = require('node:test');
const {
getProcessingDelay,
matchesOfficialSyntax
} = require('../api/ezo-command-service');
test('accepts official calibration commands by sensor', () => {
assert.equal(matchesOfficialSyntax('rtd', 'Cal,25.00'), true);
assert.equal(matchesOfficialSyntax('ph', 'Cal,mid,7.00'), true);
assert.equal(matchesOfficialSyntax('ph', 'Cal,low,4.00'), true);
assert.equal(matchesOfficialSyntax('ph', 'Cal,high,10.00'), true);
assert.equal(matchesOfficialSyntax('do', 'Cal'), true);
assert.equal(matchesOfficialSyntax('do', 'Cal,0'), true);
assert.equal(matchesOfficialSyntax('ec', 'Cal,dry'), true);
assert.equal(matchesOfficialSyntax('ec', 'Cal,1413'), true);
assert.equal(matchesOfficialSyntax('ec', 'Cal,low,12880'), true);
assert.equal(matchesOfficialSyntax('ec', 'Cal,high,80000'), true);
});
test('rejects commands assigned to the wrong sensor', () => {
assert.equal(matchesOfficialSyntax('do', 'Cal,atm'), false);
assert.equal(matchesOfficialSyntax('rtd', 'Cal,mid,7'), false);
assert.equal(matchesOfficialSyntax('ph', 'Cal,dry'), false);
assert.equal(matchesOfficialSyntax('rtd', 'T,25'), false);
});
test('uses Atlas processing delays for critical commands', () => {
assert.equal(getProcessingDelay('R'), 1000);
assert.equal(getProcessingDelay('Cal'), 1300);
assert.equal(getProcessingDelay('Cal,0'), 1300);
assert.equal(getProcessingDelay('Cal,mid,7'), 900);
assert.equal(getProcessingDelay('Cal,dry'), 600);
assert.equal(getProcessingDelay('Status'), 300);
});