diff --git a/package.json b/package.json index e40f350..afc8147 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "janus-videoroom-client", - "version": "2.0.2", + "version": "2.0.3", "main": "src/janus.js", "scripts": { "test": "mocha -R spec --full-trace test/*-spec.js" @@ -27,4 +27,5 @@ "devDependencies": { "mocha": "3.0.1" } + } diff --git a/src/transaction.js b/src/transaction.js index 1dac34a..2b214e0 100644 --- a/src/transaction.js +++ b/src/transaction.js @@ -30,9 +30,9 @@ class InvalidTransactionState extends Error { constructor(transaction) { super(); this.name = this.constructor.name; - this.message = 'Invalid transaction state ' + this.transaction.getState(); - this.transaction = transaction; + this.message = 'Invalid transaction state ' + transaction.getState(); this.state = transaction.getState(); + this.transaction = transaction; } } diff --git a/test/transaction-spec.js b/test/transaction-spec.js index 4c21550..23846ea 100644 --- a/test/transaction-spec.js +++ b/test/transaction-spec.js @@ -2,6 +2,7 @@ var Transaction = require('../src/transaction').Transaction; var TransactionTimeoutError = require('../src/transaction').TransactionTimeoutError; +var InvalidTransactionState = require('../src/transaction').InvalidTransactionState; var ClientResponse = require('../src/client/response').ClientResponse; var assert = require('chai').assert; var validator = require('validator'); @@ -141,4 +142,30 @@ describe('Transaction', function(){ done(); }).start(); }); + + it('should throw an error, due to multiple calls of start', function(done){ + var transaction = new Transaction({ + request: request, + client: clientMock + }); + transaction.onSent(()=>{ + }).start(); + transaction.onError((err)=>{ + assert.instanceOf(err, InvalidTransactionState); + done(); + }).onSent(()=>{ + }).start(); + }); + + it('should throw an error, due to invalid call of response', function(done){ + var transaction = new Transaction({ + request: request, + client: clientMock + }); + transaction.onError((err)=>{ + assert.instanceOf(err, InvalidTransactionState); + done(); + }); + transaction.response(new ClientResponse(request, request)); + }); });