mysensors-handlers
Version:
Encode / decode MQTT stream from Devices using MySensors protocol
95 lines (78 loc) • 2.41 kB
JavaScript
const {assert} = require('chai');
const {mySensorsPatternDetector} = require('../lib/detector');
// const mySensorsPattern = "+prefixedDevEui/+nodeId/+sensorId/+method/+ack/+type";
describe('mySensorsPatternDetector - test 1', () => {
const packet = {topic: 'MySensors123-out/0/2/1/0/4', payload: 'test'};
const pattern = mySensorsPatternDetector(packet);
const params = pattern.params;
const keys = [
'nodeId',
'sensorId',
'prefixedDevEui',
'method',
'ack',
'type',
];
it('pattern should exist', () => {
assert.typeOf(pattern, 'object');
});
it('pattern should contain params and value properties', () => {
assert.hasAllKeys(pattern, ['params', 'name']);
});
it(`pattern name should be mySensors`, () => {
assert.strictEqual('mySensors', pattern.name);
});
it(`params should contain ${keys.toString()}`, () => {
assert.hasAllKeys(params, keys);
});
});
describe('mySensorsPatternDetector - test 2', () => {
const packet = {topic: 'MySensors123-out/0/2/0/0/4', payload: 'test'};
const pattern = mySensorsPatternDetector(packet);
const params = pattern.params;
const keys = [
'nodeId',
'sensorId',
'prefixedDevEui',
'method',
'ack',
'type',
];
it('pattern should exist', () => {
assert.typeOf(pattern, 'object');
});
it('pattern should contain params and value properties', () => {
assert.hasAllKeys(pattern, ['params', 'name']);
});
it(`pattern name should be mySensors`, () => {
assert.strictEqual('mySensors', pattern.name);
});
it(`params should contain ${keys.toString()}`, () => {
assert.hasAllKeys(params, keys);
});
});
describe('mySensorsPatternDetector - test 3', () => {
const packet = {topic: 'MySensors123-out/10/5/1/0/23', payload: '1'};
const pattern = mySensorsPatternDetector(packet);
const params = pattern.params;
const keys = [
'nodeId',
'sensorId',
'prefixedDevEui',
'method',
'ack',
'type',
];
it('pattern should exist', () => {
assert.typeOf(pattern, 'object');
});
it('pattern should contain params and value properties', () => {
assert.hasAllKeys(pattern, ['params', 'name']);
});
it(`pattern name should be mySensors`, () => {
assert.strictEqual('mySensors', pattern.name);
});
it(`params should contain ${keys.toString()}`, () => {
assert.hasAllKeys(params, keys);
});
});