New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

hmpo-model

Package Overview
Dependencies
Maintainers
1
Versions
36
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

hmpo-model - npm Package Compare versions

Comparing version 0.1.2 to 0.2.0

28

lib/model.js

@@ -80,3 +80,3 @@ var _ = require('underscore'),

var request = protocol.request(settings, function (response) {
this.handleResponse(response, settings, _callback);
this.handleResponse(response, _callback);
}.bind(this));

@@ -94,4 +94,3 @@ request.on('error', function(e) {

handleResponse: function(response, settings, callback) {
handleResponse: function(response, callback) {
response.pipe(concat(function (d) {

@@ -105,14 +104,17 @@ var data = {};

}
this.parseResponse(response.statusCode, data, callback);
}.bind(this)));
},
if (response.statusCode < 400) {
try {
data = this.parse(data);
callback(null, data, response.statusCode);
} catch (e) {
callback(e, null, response.statusCode);
}
} else {
callback(this.parseError(response.statusCode, data), data, response.statusCode);
parseResponse: function (statusCode, data, callback) {
if (statusCode < 400) {
try {
data = this.parse(data);
callback(null, data, statusCode);
} catch (e) {
callback(e, null, statusCode);
}
}.bind(this)));
} else {
callback(this.parseError(statusCode, data), data, statusCode);
}
},

@@ -119,0 +121,0 @@

{
"name": "hmpo-model",
"version": "0.1.2",
"version": "0.2.0",
"description": "Simple model for interacting with http/rest apis.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -41,2 +41,5 @@ var http = require('http'),

sinon.stub(https, 'request').returns(apiRequest);
sinon.spy(model, 'parseResponse');
});

@@ -298,2 +301,10 @@

it('passes statusCode, response body and callback to `parseResponse`', function (done) {
http.request.yieldsAsync(success);
model.save(function () {
model.parseResponse.should.have.been.calledWith(200, { message: 'success' }, sinon.match.func);
done();
});
});
});

@@ -476,2 +487,10 @@

it('passes statusCode, response body and callback to `parseResponse`', function (done) {
http.request.yieldsAsync(success);
model.fetch(function () {
model.parseResponse.should.have.been.calledWith(200, { message: 'success' }, sinon.match.func);
done();
});
});
});

@@ -647,5 +666,40 @@

it('passes statusCode, response body and callback to `parseResponse`', function (done) {
http.request.yieldsAsync(success);
model.delete(function () {
model.parseResponse.should.have.been.calledWith(200, { message: 'success' }, sinon.match.func);
done();
});
});
});
describe('parseResponse', function () {
beforeEach(function () {
sinon.stub(model, 'parse').returns({ parsed: 'true' });
sinon.stub(model, 'parseError').returns({ error: 'true' });
});
it('sends response bodies with "success" status codes to parse', function (done) {
model.parseResponse(200, { parsed: 'false' }, function (err, data, statusCode) {
expect(err).to.be.null;
model.parse.should.have.been.calledWith({ parsed: 'false' });
data.should.eql({ parsed: 'true' });
statusCode.should.equal(200);
done();
});
});
it('sends response bodies with "failure" status codes to parseError', function (done) {
model.parseResponse(400, { parsed: 'false' }, function (err, data, statusCode) {
err.should.eql({ error: 'true' });
data.should.eql({ parsed: 'false' });
statusCode.should.equal(400);
done();
});
});
});
describe('prepare', function () {

@@ -652,0 +706,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc