obniz
Version:
obniz sdk for javascript
611 lines (594 loc) • 7.16 kB
JavaScript
let chai = require('chai');
let expect = chai.expect;
let sinon = require('sinon');
let testUtil = require('../../../testUtil.js');
chai.use(require('chai-like'));
chai.use(testUtil.obnizAssert);
describe('obniz.libs.logicanalyser', function() {
beforeEach(function(done) {
return testUtil.setupObnizPromise(this, done);
});
afterEach(function(done) {
return testUtil.releaseObnizePromise(this, done);
});
it('start', function() {
this.obniz.logicAnalyzer.start({ io: 1, interval: 0.1, duration: 100 });
expect(this.obniz).send([
{ logic_analyzer: { interval: 0.1, io: [1], duration: 100 } },
]);
expect(this.obniz).to.be.finished;
});
it('startWithTrigger', function() {
this.obniz.logicAnalyzer.start({
io: 1,
interval: 0.1,
duration: 100,
triggerValue: false,
triggerValueSamples: 3,
});
expect(this.obniz).send([
{
logic_analyzer: {
interval: 0.1,
io: [1],
duration: 100,
trigger: { samples: 3, value: false },
},
},
]);
expect(this.obniz).to.be.finished;
});
it('startWithTrigger2', function() {
this.obniz.logicAnalyzer.start({
io: 1,
interval: 0.1,
duration: 100,
triggerValue: 1,
triggerValueSamples: 3,
});
expect(this.obniz).send([
{
logic_analyzer: {
interval: 0.1,
io: [1],
duration: 100,
trigger: { samples: 3, value: true },
},
},
]);
expect(this.obniz).to.be.finished;
});
it('onmeasured', function() {
let stub = sinon.stub();
this.obniz.logicAnalyzer.start({
io: 1,
interval: 0.1,
duration: 100,
triggerValue: false,
triggerValueSamples: 3,
});
expect(this.obniz).send([
{
logic_analyzer: {
interval: 0.1,
io: [1],
duration: 100,
trigger: { samples: 3, value: false },
},
},
]);
this.obniz.logicAnalyzer.onmeasured = stub;
let data = [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
0,
0,
0,
1,
];
testUtil.receiveJson(this.obniz, [{ logic_analyzer: { data: data } }]);
sinon.assert.callCount(stub, 1);
expect(stub.getCall(0).args[0]).to.be.deep.equal(data);
expect(this.obniz).to.be.finished;
});
it('onmeasured need pin no');
it('finished', function() {
this.obniz.logicAnalyzer.start({ io: 1, interval: 0.1, duration: 100 });
expect(this.obniz).send([
{ logic_analyzer: { interval: 0.1, io: [1], duration: 100 } },
]);
expect(this.obniz).to.be.finished;
this.obniz.logicAnalyzer.end();
expect(this.obniz).send([{ logic_analyzer: null }]);
});
});