How do i test for http status code 500 in sinon?
I have the following code in my main class in nodejs.
I am doing unit testing using sinon.
How do I test for this portion of the code
res.status(error.status || 500);
I am able to test the error.status portion by call an invalid url which leads to the error handling above, 404, but how do i get to the 500
flow?
main.js:
...
//importing route
var routes = require('./api/rest/webservRest');
//register the route
routes(app);
//reached here throw error 404, means no routes to handle inc. request
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
});
// catch errors
app.use((error, req, res, next) => {
log.error("ERROR - " + req.url + " - " + error.message);
res.status(error.status || 500);
res.json({
error: {
message: error.message
}
});
});
//start application
module.exports = app.listen(port, () => {
log.info('Module - RESTful API server started on: ' + port);
});
node.js unit-testing sinon
add a comment |
I have the following code in my main class in nodejs.
I am doing unit testing using sinon.
How do I test for this portion of the code
res.status(error.status || 500);
I am able to test the error.status portion by call an invalid url which leads to the error handling above, 404, but how do i get to the 500
flow?
main.js:
...
//importing route
var routes = require('./api/rest/webservRest');
//register the route
routes(app);
//reached here throw error 404, means no routes to handle inc. request
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
});
// catch errors
app.use((error, req, res, next) => {
log.error("ERROR - " + req.url + " - " + error.message);
res.status(error.status || 500);
res.json({
error: {
message: error.message
}
});
});
//start application
module.exports = app.listen(port, () => {
log.info('Module - RESTful API server started on: ' + port);
});
node.js unit-testing sinon
add a comment |
I have the following code in my main class in nodejs.
I am doing unit testing using sinon.
How do I test for this portion of the code
res.status(error.status || 500);
I am able to test the error.status portion by call an invalid url which leads to the error handling above, 404, but how do i get to the 500
flow?
main.js:
...
//importing route
var routes = require('./api/rest/webservRest');
//register the route
routes(app);
//reached here throw error 404, means no routes to handle inc. request
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
});
// catch errors
app.use((error, req, res, next) => {
log.error("ERROR - " + req.url + " - " + error.message);
res.status(error.status || 500);
res.json({
error: {
message: error.message
}
});
});
//start application
module.exports = app.listen(port, () => {
log.info('Module - RESTful API server started on: ' + port);
});
node.js unit-testing sinon
I have the following code in my main class in nodejs.
I am doing unit testing using sinon.
How do I test for this portion of the code
res.status(error.status || 500);
I am able to test the error.status portion by call an invalid url which leads to the error handling above, 404, but how do i get to the 500
flow?
main.js:
...
//importing route
var routes = require('./api/rest/webservRest');
//register the route
routes(app);
//reached here throw error 404, means no routes to handle inc. request
app.use((req, res, next) => {
const error = new Error('Not found');
error.status = 404;
next(error);
});
// catch errors
app.use((error, req, res, next) => {
log.error("ERROR - " + req.url + " - " + error.message);
res.status(error.status || 500);
res.json({
error: {
message: error.message
}
});
});
//start application
module.exports = app.listen(port, () => {
log.info('Module - RESTful API server started on: ' + port);
});
node.js unit-testing sinon
node.js unit-testing sinon
asked Nov 14 '18 at 8:33
shadowshadow
115110
115110
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
500
will be caught if error.status
return falsy value such as false
or undefined
.
So perhaps you can stubing the error
using Sinon as below:
const error = {
status: false,
message: 'something'
}
or
const error = {
message: 'something'
}
Hope it helps
I still don't get it. Does it mean that i need to stubapp.use((error, req, res, next)
?
– shadow
Dec 3 '18 at 5:52
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295913%2fhow-do-i-test-for-http-status-code-500-in-sinon%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
500
will be caught if error.status
return falsy value such as false
or undefined
.
So perhaps you can stubing the error
using Sinon as below:
const error = {
status: false,
message: 'something'
}
or
const error = {
message: 'something'
}
Hope it helps
I still don't get it. Does it mean that i need to stubapp.use((error, req, res, next)
?
– shadow
Dec 3 '18 at 5:52
add a comment |
500
will be caught if error.status
return falsy value such as false
or undefined
.
So perhaps you can stubing the error
using Sinon as below:
const error = {
status: false,
message: 'something'
}
or
const error = {
message: 'something'
}
Hope it helps
I still don't get it. Does it mean that i need to stubapp.use((error, req, res, next)
?
– shadow
Dec 3 '18 at 5:52
add a comment |
500
will be caught if error.status
return falsy value such as false
or undefined
.
So perhaps you can stubing the error
using Sinon as below:
const error = {
status: false,
message: 'something'
}
or
const error = {
message: 'something'
}
Hope it helps
500
will be caught if error.status
return falsy value such as false
or undefined
.
So perhaps you can stubing the error
using Sinon as below:
const error = {
status: false,
message: 'something'
}
or
const error = {
message: 'something'
}
Hope it helps
answered Nov 15 '18 at 0:00
deerawandeerawan
2,34141425
2,34141425
I still don't get it. Does it mean that i need to stubapp.use((error, req, res, next)
?
– shadow
Dec 3 '18 at 5:52
add a comment |
I still don't get it. Does it mean that i need to stubapp.use((error, req, res, next)
?
– shadow
Dec 3 '18 at 5:52
I still don't get it. Does it mean that i need to stub
app.use((error, req, res, next)
?– shadow
Dec 3 '18 at 5:52
I still don't get it. Does it mean that i need to stub
app.use((error, req, res, next)
?– shadow
Dec 3 '18 at 5:52
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53295913%2fhow-do-i-test-for-http-status-code-500-in-sinon%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown