Skip to content

Commit 74d81a7

Browse files
author
Chris Park
committed
Added test for 409 incompatible binding
1 parent d0e0177 commit 74d81a7

File tree

1 file changed

+66
-34
lines changed

1 file changed

+66
-34
lines changed

tests/unittests.js

Lines changed: 66 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,16 @@ var rosetteException = require("../lib/rosetteExceptions");
2323

2424
describe("Language Endpoint", function() {
2525
beforeEach(function(done) {
26-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
26+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
2727

2828
nock('https://api.rosette.com', {"encodedQueryParams": true })
2929
.post('/rest/v1/info')
30-
.query({"clientVersion":"1.1"})
30+
.query({"clientVersion": "1.1"})
3131
.reply(200, JSON.parse(mockResponse));
3232

3333
nock('https://api.rosette.com', {"encodedQueryParams": true })
3434
.post('/rest/v1/language')
35-
.query({"clientVersion":"1.1"})
35+
.query({"clientVersion": "1.1"})
3636
.reply(200, JSON.parse(mockResponse));
3737
done();
3838
});
@@ -82,16 +82,16 @@ describe("Language Endpoint", function() {
8282

8383
describe("Relationships Endpoint", function() {
8484
beforeEach(function(done) {
85-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
85+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
8686

8787
nock('https://api.rosette.com', {"encodedQueryParams": true })
8888
.post('/rest/v1/info')
89-
.query({"clientVersion":"1.1"})
89+
.query({"clientVersion": "1.1"})
9090
.reply(200, JSON.parse(mockResponse));
9191

9292
nock('https://api.rosette.com', {"encodedQueryParams": true })
9393
.post('/rest/v1/relationships')
94-
.query({"clientVersion":"1.1"})
94+
.query({"clientVersion": "1.1"})
9595
.reply(200, JSON.parse(mockResponse));
9696
done();
9797
});
@@ -130,16 +130,16 @@ describe("Relationships Endpoint", function() {
130130

131131
describe("Name Similarity Endpoint", function() {
132132
beforeEach(function(done) {
133-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
133+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
134134

135135
nock('https://api.rosette.com', {"encodedQueryParams": true })
136136
.post('/rest/v1/info')
137-
.query({"clientVersion":"1.1"})
137+
.query({"clientVersion": "1.1"})
138138
.reply(200, JSON.parse(mockResponse));
139139

140140
nock('https://api.rosette.com', {"encodedQueryParams": true })
141141
.post('/rest/v1/name-similarity')
142-
.query({"clientVersion":"1.1"})
142+
.query({"clientVersion": "1.1"})
143143
.reply(200, JSON.parse(mockResponse));
144144
done();
145145
});
@@ -183,16 +183,16 @@ describe("Name Similarity Endpoint", function() {
183183

184184
describe("Name Translation Endpoint", function() {
185185
beforeEach(function(done) {
186-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
186+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
187187

188188
nock('https://api.rosette.com', {"encodedQueryParams": true })
189189
.post('/rest/v1/info')
190-
.query({"clientVersion":"1.1"})
190+
.query({"clientVersion": "1.1"})
191191
.reply(200, JSON.parse(mockResponse));
192192

193193
nock('https://api.rosette.com', {"encodedQueryParams": true })
194194
.post('/rest/v1/name-translation')
195-
.query({"clientVersion":"1.1"})
195+
.query({"clientVersion": "1.1"})
196196
.reply(200, JSON.parse(mockResponse));
197197
done();
198198
});
@@ -246,16 +246,16 @@ describe("Name Translation Endpoint", function() {
246246

247247
describe("Sentiment Endpoint", function() {
248248
beforeEach(function(done) {
249-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
249+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
250250

251251
nock('https://api.rosette.com', {"encodedQueryParams": true })
252252
.post('/rest/v1/info')
253-
.query({"clientVersion":"1.1"})
253+
.query({"clientVersion": "1.1"})
254254
.reply(200, JSON.parse(mockResponse));
255255

256256
nock('https://api.rosette.com', {"encodedQueryParams": true })
257257
.post('/rest/v1/sentiment')
258-
.query({"clientVersion":"1.1"})
258+
.query({"clientVersion": "1.1"})
259259
.reply(200, JSON.parse(mockResponse));
260260
done();
261261
});
@@ -305,16 +305,16 @@ describe("Sentiment Endpoint", function() {
305305

306306
describe("Categories Endpoint", function() {
307307
beforeEach(function(done) {
308-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
308+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
309309

310310
nock('https://api.rosette.com', {"encodedQueryParams": true })
311311
.post('/rest/v1/info')
312-
.query({"clientVersion":"1.1"})
312+
.query({"clientVersion": "1.1"})
313313
.reply(200, JSON.parse(mockResponse));
314314

315315
nock('https://api.rosette.com', {"encodedQueryParams": true })
316316
.post('/rest/v1/categories')
317-
.query({"clientVersion":"1.1"})
317+
.query({"clientVersion": "1.1"})
318318
.reply(200, JSON.parse(mockResponse));
319319
done();
320320
});
@@ -364,16 +364,16 @@ describe("Categories Endpoint", function() {
364364

365365
describe("Entities Endpoint", function() {
366366
beforeEach(function(done) {
367-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
367+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
368368

369369
nock('https://api.rosette.com', {"encodedQueryParams": true })
370370
.post('/rest/v1/info')
371-
.query({"clientVersion":"1.1"})
371+
.query({"clientVersion": "1.1"})
372372
.reply(200, JSON.parse(mockResponse));
373373

374374
nock('https://api.rosette.com', {"encodedQueryParams": true })
375375
.post('/rest/v1/entities')
376-
.query({"clientVersion":"1.1"})
376+
.query({"clientVersion": "1.1"})
377377
.reply(200, JSON.parse(mockResponse));
378378
done();
379379
});
@@ -423,16 +423,16 @@ describe("Entities Endpoint", function() {
423423

424424
describe("Morphology Endpoint (suite covers all features)", function() {
425425
beforeEach(function(done) {
426-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
426+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
427427

428428
nock('https://api.rosette.com', {"encodedQueryParams": true })
429429
.post('/rest/v1/info')
430-
.query({"clientVersion":"1.1"})
430+
.query({"clientVersion": "1.1"})
431431
.reply(200, JSON.parse(mockResponse));
432432

433433
nock('https://api.rosette.com', {"encodedQueryParams": true })
434434
.post('/rest/v1/morphology/complete')
435-
.query({"clientVersion":"1.1"})
435+
.query({"clientVersion": "1.1"})
436436
.reply(200, JSON.parse(mockResponse));
437437
done();
438438
});
@@ -499,16 +499,16 @@ describe("Morphology Endpoint (suite covers all features)", function() {
499499

500500
describe("Tokens Endpoint", function() {
501501
beforeEach(function(done) {
502-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
502+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
503503

504504
nock('https://api.rosette.com', {"encodedQueryParams": true })
505505
.post('/rest/v1/info')
506-
.query({"clientVersion":"1.1"})
506+
.query({"clientVersion": "1.1"})
507507
.reply(200, JSON.parse(mockResponse));
508508

509509
nock('https://api.rosette.com', {"encodedQueryParams": true })
510510
.post('/rest/v1/tokens')
511-
.query({"clientVersion":"1.1"})
511+
.query({"clientVersion": "1.1"})
512512
.reply(200, JSON.parse(mockResponse));
513513
done();
514514
});
@@ -558,16 +558,16 @@ describe("Tokens Endpoint", function() {
558558

559559
describe("Sentences Endpoint", function() {
560560
beforeEach(function(done) {
561-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
561+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
562562

563563
nock('https://api.rosette.com', {"encodedQueryParams": true })
564564
.post('/rest/v1/info')
565-
.query({"clientVersion":"1.1"})
565+
.query({"clientVersion": "1.1"})
566566
.reply(200, JSON.parse(mockResponse));
567567

568568
nock('https://api.rosette.com', {"encodedQueryParams": true })
569569
.post('/rest/v1/sentences')
570-
.query({"clientVersion":"1.1"})
570+
.query({"clientVersion": "1.1"})
571571
.reply(200, JSON.parse(mockResponse));
572572
done();
573573
});
@@ -617,11 +617,11 @@ describe("Sentences Endpoint", function() {
617617

618618
describe("Info Endpoint", function() {
619619
beforeEach(function(done) {
620-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
620+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
621621

622622
nock('https://api.rosette.com', {"encodedQueryParams": true })
623623
.post('/rest/v1/info')
624-
.query({"clientVersion":"1.1"})
624+
.query({"clientVersion": "1.1"})
625625
.reply(200, JSON.parse(mockResponse));
626626

627627
nock('https://api.rosette.com')
@@ -650,11 +650,11 @@ describe("Info Endpoint", function() {
650650

651651
describe("Ping Endpoint", function() {
652652
beforeEach(function(done) {
653-
var mockResponse = JSON.stringify({'name':'Rosette API', 'versionChecked':true});
653+
var mockResponse = JSON.stringify({'name': 'Rosette API', 'versionChecked': true});
654654

655655
nock('https://api.rosette.com', {"encodedQueryParams": true })
656656
.post('/rest/v1/info')
657-
.query({"clientVersion":"1.1"})
657+
.query({"clientVersion": "1.1"})
658658
.reply(200, JSON.parse(mockResponse));
659659

660660
nock('https://api.rosette.com')
@@ -678,5 +678,37 @@ describe("Ping Endpoint", function() {
678678
});
679679

680680
});
681+
});
682+
683+
describe("Error 409 Incompatible Binding Check", function() {
684+
beforeEach(function(done) {
685+
var mockResponse = JSON.stringify({'code': 'incompatibleBindingVersion', 'message': 'some message'});
686+
687+
nock('https://api.rosette.com', {"encodedQueryParams": true })
688+
.post('/rest/v1/info')
689+
.query({"clientVersion": "1.1"})
690+
.reply(409, JSON.parse(mockResponse));
691+
692+
nock('https://api.rosette.com')
693+
.get('/rest/v1/info')
694+
.reply(409, JSON.parse(mockResponse));
695+
done();
696+
});
697+
698+
afterEach(function(done) {
699+
nock.cleanAll();
700+
done();
701+
});
702+
703+
it("successfully handles the error", function(done) {
704+
var api = new Api('123456789', 'https://api.rosette.com/rest/v1');
705+
api.rosette("info", function(err, res) {
706+
chai.expect(err).to.not.be.null;
707+
chai.expect(err.name).to.equal('RosetteException');
708+
chai.expect(err.message).to.contain('incompatibleBindingVersion');
709+
done();
710+
});
711+
});
681712

682713
});
714+

0 commit comments

Comments
 (0)