Add unit tests for connect/attach errors

This commit is contained in:
Pierre Ossman 2021-04-18 11:07:43 +02:00
parent ae3c01f782
commit 42100e8233
1 changed files with 25 additions and 0 deletions

View File

@ -163,6 +163,18 @@ describe('Remote Frame Buffer Protocol Client', function () {
expect(open).to.have.been.calledOnceWithExactly('ws://HOST:8675/PATH', []);
});
it('should report connection problems via event', function () {
open.restore();
open = sinon.stub(Websock.prototype, 'open');
open.throws(Error('Failure'));
const client = new RFB(document.createElement('div'), 'ws://HOST:8675/PATH');
let callback = sinon.spy();
client.addEventListener('disconnect', callback);
this.clock.tick();
expect(callback).to.have.been.calledOnce;
expect(callback.args[0][0].detail.clean).to.be.false;
});
it('should handle WebSocket/RTCDataChannel objects', function () {
let sock = new FakeWebSocket('ws://HOST:8675/PATH', []);
new RFB(document.createElement('div'), sock);
@ -170,6 +182,19 @@ describe('Remote Frame Buffer Protocol Client', function () {
expect(open).to.not.have.been.called;
expect(attach).to.have.been.calledOnceWithExactly(sock);
});
it('should report attach problems via event', function () {
attach.restore();
attach = sinon.stub(Websock.prototype, 'attach');
attach.throws(Error('Failure'));
let sock = new FakeWebSocket('ws://HOST:8675/PATH', []);
const client = new RFB(document.createElement('div'), sock);
let callback = sinon.spy();
client.addEventListener('disconnect', callback);
this.clock.tick();
expect(callback).to.have.been.calledOnce;
expect(callback.args[0][0].detail.clean).to.be.false;
});
});
describe('#disconnect', function () {