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); });