68 lines
2.4 KiB
TypeScript
68 lines
2.4 KiB
TypeScript
import { expect } from 'chai';
|
|
import {
|
|
describe,
|
|
it,
|
|
} from 'mocha';
|
|
import sinon from 'sinon';
|
|
|
|
import { DiscoverDevices } from '../src/discover';
|
|
import { ConnectedNode } from '../src/node';
|
|
import { PromiseTimeout } from '../src/util';
|
|
|
|
const TEN_SECONDS = 10000;
|
|
const devices = await DiscoverDevices()
|
|
|
|
sinon.stub(console, 'log') // disable console.log
|
|
// sinon.stub(console, 'info') // disable console.info
|
|
sinon.stub(console, 'warn') // disable console.warn
|
|
// sinon.stub(console, 'error') // disable console.error
|
|
|
|
describe(`Configure node`, async () => {
|
|
devices.forEach(async device => {
|
|
const node = new ConnectedNode(device.port, device.pio_env);
|
|
before(async () => {
|
|
await node.configure();
|
|
},);
|
|
|
|
describe(`${device.pio_env}`.toUpperCase(), async () => {
|
|
it('should respond to config with valid want_config flow', async () => {
|
|
expect(node.deviceConfig).to.not.be.undefined;
|
|
expect(node.myNodeInfo).to.not.be.undefined;
|
|
expect(node.metadata).to.not.be.undefined;
|
|
expect(node.nodes).to.have.length.greaterThan(0);
|
|
expect(node.channels).to.have.length.greaterThan(0);
|
|
});
|
|
|
|
it('should send text and receive ack', async () => {
|
|
await node.sendText('Howdy test!');
|
|
const found = await node.waitForRouting((packet) => {
|
|
console.info(packet);
|
|
if (packet.variant.case === 'errorReason' && packet.variant.value === 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
});
|
|
expect(found).to.be.true;
|
|
await PromiseTimeout(2000);
|
|
});
|
|
|
|
it ('should send waypoint and receive response', async () => {
|
|
node.routingPackets = [];
|
|
// Unicode snowman
|
|
await node.sendWaypoint(0x00002603, 32, 32, );
|
|
const found = await node.waitForRouting((packet) => {
|
|
console.info(packet);
|
|
if (packet.variant.case === 'errorReason' && packet.variant.value === 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
});
|
|
expect(found).to.be.true;
|
|
});
|
|
|
|
after(async () => {
|
|
await node.close();
|
|
});
|
|
});
|
|
});
|
|
}); |