Comparing version 5.3.6 to 5.3.7
@@ -132,4 +132,2 @@ 'use strict'; | ||
clearTimeout(observerObj.timeout); | ||
if (response.header.statusCode !== 200) { | ||
@@ -188,9 +186,8 @@ observer.onError({ | ||
clearTimeout(reqObj.timeout); | ||
prepareRequest(reqObj.observer, reqObj.request, reqObj.timing, reqObj.tries + 1); | ||
prepareRequest(reqObj.observer, reqObj.request, reqObj.tries + 1); | ||
}); | ||
} | ||
function prepareRequest(observer, request, timeout) { | ||
var tries = arguments.length <= 3 || arguments[3] === undefined ? 0 : arguments[3]; | ||
function prepareRequest(observer, request) { | ||
var tries = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2]; | ||
@@ -201,12 +198,3 @@ | ||
requestMap[request.header.correlationId] = { | ||
observer: observer, request: request, tries: tries, | ||
timing: timeout, | ||
timeout: setTimeout(function () { | ||
(0, _utils.log)(1, "Core never received server response within timeout"); | ||
observer.onError({ | ||
err: 'Never received server response within timeout ' + timeout, | ||
req: request | ||
}); | ||
}, timeout) | ||
observer: observer, request: request, tries: tries | ||
}; | ||
@@ -344,17 +332,2 @@ | ||
clearTimeout(connectionTimeout); | ||
Object.keys(requestMap).forEach(function (key) { | ||
clearTimeout(requestMap[key].timeout); | ||
}); | ||
// let backend = null; | ||
// let backendSet = false; | ||
// let isConnected = false; | ||
// let mockRequests = false; | ||
// let requestQueue = []; | ||
// let requestMap = {}; | ||
// let notificationMap = {}; | ||
// let defaultHeaders = {}; | ||
// let connectionTries = 0; | ||
// let connectionTimeout; | ||
} | ||
@@ -367,6 +340,5 @@ | ||
var request = (0, _utils.generateRequestObject)(defaultHeaders)(config); | ||
var timeout = config.timeout || 10000; | ||
prepareRequest(observer, request, timeout); | ||
prepareRequest(observer, request); | ||
}); | ||
} |
@@ -169,89 +169,2 @@ 'use strict'; | ||
describe('Timeouts', function () { | ||
beforeEach(function () { | ||
jasmine.clock().install(); | ||
}); | ||
afterEach(function () { | ||
jasmine.clock().uninstall(); | ||
}); | ||
it('should error if no response within a given timeout', function (run) { | ||
var backend = (0, _testUtils.makeMockBackend)(); | ||
(0, _request.setBackend)({ backend: backend, url: 'someUrl' }); | ||
(0, _rxws2.default)({ | ||
method: 'get', | ||
resource: 'users', | ||
timeout: 100 | ||
}).subscribe(function (response) { | ||
expect('response should never come').toFail(); | ||
run(); | ||
}, function (error) { | ||
expect(error.err).toBe('Never received server response within timeout 100'); | ||
expect(error.req).toBeTruthy(); | ||
expect(_typeof(error.req.header.correlationId)).toBe('string'); | ||
run(); | ||
}); | ||
jasmine.clock().tick(101); | ||
}); | ||
it('should error if no response within default timeout', function (run) { | ||
var backend = (0, _testUtils.makeMockBackend)(); | ||
(0, _request.setBackend)({ backend: backend, url: 'someUrl' }); | ||
(0, _rxws2.default)({ | ||
method: 'get', | ||
resource: 'users' | ||
}).subscribe(function (response) { | ||
expect('response should never come').toFail(); | ||
run(); | ||
}, function (error) { | ||
expect(error.err).toBe('Never received server response within timeout 10000'); | ||
expect(error.req).toBeTruthy(); | ||
expect(_typeof(error.req.header.correlationId)).toBe('string'); | ||
run(); | ||
}); | ||
jasmine.clock().tick(10001); | ||
}); | ||
it('should not error if a response is sent', function (run) { | ||
var backend = (0, _testUtils.makeMockBackend)(); | ||
(0, _request.setBackend)({ backend: backend, url: 'someUrl' }); | ||
(0, _rxws2.default)({ | ||
method: 'get', | ||
resource: 'users' | ||
}).subscribe(function (response) { | ||
expect(response.users[0].name).toBe('Ibn Al Haytham'); | ||
}, function (err) { | ||
expect(err).toFail(); | ||
}); | ||
var request = JSON.parse(backend.write.calls.argsFor(0)); | ||
backend.mockServerMessage(JSON.stringify({ | ||
"header": { | ||
"correlationId": request.header.correlationId, | ||
"customHeader": 5, | ||
"statusCode": 200 | ||
}, | ||
"body": { | ||
"users": [{ | ||
name: 'Ibn Al Haytham' | ||
}] | ||
} | ||
})); | ||
setTimeout(function () { | ||
run(); | ||
}, 11000); | ||
jasmine.clock().tick(11001); | ||
}); | ||
}); | ||
describe('Request responses', function () { | ||
@@ -258,0 +171,0 @@ it('should throw an error if a correlation id has no resolution in the client', function () { |
{ | ||
"name": "rxws", | ||
"version": "5.3.6", | ||
"version": "5.3.7", | ||
"description": "A RESTful reactive JavaScript implmentation on top of web sockets", | ||
@@ -12,4 +12,4 @@ "main": "lib/rxws.js", | ||
"watch": "node node_modules/babel/bin/babel.js src --out-dir lib --watch", | ||
"copy": "cp -r lib ~/dev/sme-frontend/jspm_packages/npm/rxws@5.2.2/", | ||
"pre-publish": "npm run build", | ||
"copy": "cp -r lib ~/dev/sme-frontend/jspm_packages/npm/rxws@5.3.6/", | ||
"prepublish": "npm run build", | ||
"coverage": "babel-node node_modules/isparta/bin/isparta cover --report text --report html node_modules/jasmine/bin/jasmine.js" | ||
@@ -16,0 +16,0 @@ }, |
@@ -123,4 +123,2 @@ import { Observable } from 'rx'; | ||
clearTimeout(observerObj.timeout); | ||
if (response.header.statusCode !== 200) { | ||
@@ -182,8 +180,7 @@ observer.onError({ | ||
clearTimeout(reqObj.timeout); | ||
prepareRequest(reqObj.observer, reqObj.request, reqObj.timing, reqObj.tries + 1); | ||
prepareRequest(reqObj.observer, reqObj.request, reqObj.tries + 1); | ||
}); | ||
} | ||
function prepareRequest(observer, request, timeout, tries = 0) { | ||
function prepareRequest(observer, request, tries = 0) { | ||
@@ -194,11 +191,2 @@ log(5, "Core preparing request"); | ||
observer, request, tries, | ||
timing: timeout, | ||
timeout: setTimeout(() => { | ||
log(1, "Core never received server response within timeout"); | ||
observer.onError({ | ||
err: 'Never received server response within timeout ' + timeout, | ||
req: request, | ||
}); | ||
}, timeout) | ||
}; | ||
@@ -342,17 +330,2 @@ | ||
clearTimeout(connectionTimeout); | ||
Object.keys(requestMap).forEach((key) => { | ||
clearTimeout(requestMap[key].timeout); | ||
}); | ||
// let backend = null; | ||
// let backendSet = false; | ||
// let isConnected = false; | ||
// let mockRequests = false; | ||
// let requestQueue = []; | ||
// let requestMap = {}; | ||
// let notificationMap = {}; | ||
// let defaultHeaders = {}; | ||
// let connectionTries = 0; | ||
// let connectionTimeout; | ||
} | ||
@@ -365,6 +338,5 @@ | ||
let request = generateRequestObject(defaultHeaders)(config); | ||
let timeout = config.timeout || 10000; | ||
prepareRequest(observer, request, timeout); | ||
prepareRequest(observer, request); | ||
}) | ||
} |
@@ -150,91 +150,2 @@ import makeRequest, { setBackend, reset, startMockingRequests, stopMockingRequests } from './request'; | ||
describe('Timeouts', () => { | ||
beforeEach(function() { | ||
jasmine.clock().install(); | ||
}); | ||
afterEach(function() { | ||
jasmine.clock().uninstall(); | ||
}); | ||
it('should error if no response within a given timeout', (run) => { | ||
let backend = makeMockBackend(); | ||
setBackend({backend: backend, url: 'someUrl'}); | ||
rxws({ | ||
method: 'get', | ||
resource: 'users', | ||
timeout: 100 | ||
}).subscribe((response) => { | ||
expect('response should never come').toFail(); | ||
run(); | ||
}, (error) => { | ||
expect(error.err).toBe('Never received server response within timeout 100'); | ||
expect(error.req).toBeTruthy(); | ||
expect(typeof error.req.header.correlationId).toBe('string'); | ||
run(); | ||
}); | ||
jasmine.clock().tick(101); | ||
}); | ||
it('should error if no response within default timeout', (run) => { | ||
let backend = makeMockBackend(); | ||
setBackend({backend: backend, url: 'someUrl'}); | ||
rxws({ | ||
method: 'get', | ||
resource: 'users' | ||
}).subscribe((response) => { | ||
expect('response should never come').toFail(); | ||
run(); | ||
}, (error) => { | ||
expect(error.err).toBe('Never received server response within timeout 10000'); | ||
expect(error.req).toBeTruthy(); | ||
expect(typeof error.req.header.correlationId).toBe('string'); | ||
run(); | ||
}); | ||
jasmine.clock().tick(10001); | ||
}); | ||
it('should not error if a response is sent', (run) => { | ||
let backend = makeMockBackend(); | ||
setBackend({backend: backend, url: 'someUrl'}); | ||
rxws({ | ||
method: 'get', | ||
resource: 'users' | ||
}).subscribe((response) => { | ||
expect(response.users[0].name).toBe('Ibn Al Haytham') | ||
}, (err) => { | ||
expect(err).toFail() | ||
}); | ||
let request = JSON.parse(backend.write.calls.argsFor(0)); | ||
backend.mockServerMessage(JSON.stringify({ | ||
"header": { | ||
"correlationId": request.header.correlationId, | ||
"customHeader": 5, | ||
"statusCode": 200 | ||
}, | ||
"body": { | ||
"users": [ | ||
{ | ||
name: 'Ibn Al Haytham' | ||
} | ||
] | ||
} | ||
})); | ||
setTimeout(() => { | ||
run(); | ||
}, 11000); | ||
jasmine.clock().tick(11001); | ||
}); | ||
}); | ||
describe('Request responses', () => { | ||
@@ -241,0 +152,0 @@ it('should throw an error if a correlation id has no resolution in the client', () => { |
602928
15790