Skip to content

Commit ec6e0ac

Browse files
committed
Removing redundant numeric code attribute. Replaced its use in errors.errorCodes with the error name.
1 parent d410398 commit ec6e0ac

File tree

10 files changed

+23
-38
lines changed

10 files changed

+23
-38
lines changed

lib/nodeerrors.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ var nodeError = {
1111
middleware:middleware
1212
};
1313

14-
var functionsToMake = _.keys(errorCodeSpecs); //get array of freindly names.
14+
var functionsToMake = _.keys(errorCodeSpecs); //get array of friendly names.
1515
for (var i = 0; i < functionsToMake.length; i++) {
1616
//get error code friendly name, for example: "internalError"
1717
var errorCodeName = functionsToMake[i];
1818
//make error function for friendly name
1919
nodeError[errorCodeName] = makeErrorFunction(errorCodeName, errorCodeSpecs[errorCodeName]);
2020
//save the error code in errorCodes
21-
nodeError.errorCodes[errorCodeName] = errorCodeSpecs[errorCodeName].code;
21+
nodeError.errorCodes[errorCodeName] = errorCodeName;
2222
}
2323

2424
Error.prototype.innerError = function addInnerError(err) {

lib/util/getErrorConfig.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ function requireConfig() {
2424
var config = JSON.parse(JSON.stringify(requireConfig())); //make copy so we do not alter original
2525
if (!config.system) {
2626
config.system = {
27-
code:1,
2827
message:"There was an internal server error",
2928
http:500
3029
};

lib/util/makeErrorFunction.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ var format = require("util").format;
33
var uuid = require("node-uuid");
44

55
module.exports = function makeErrorFunction(errorCodeName, errorCodeSpec) {
6-
if (!errorCodeSpec.code && errorCodeSpec.code !== 0) {
7-
throw new Error(format("The error code specification for %s, has no property 'code'", errorCodeName));
6+
if (!errorCodeName) {
7+
throw new Error("The error code specification has no name");
88
}
99

1010
return function () {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"author":"Allan Ebdrup",
33
"name":"nodeerrors",
44
"description":"error handling module for node",
5-
"version":"1.1.3",
5+
"version":"1.1.4",
66
"repository":{
77
"type":"git",
88
"url":"https://github.com/Muscula/nodeerrors"

readme.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,15 @@ You specify your own error types by adding the file ```.errors.js``` in the root
1717
```js
1818
module.exports = {
1919
"system":{
20-
code:1,
2120
message:"Internal server error",
2221
http:500
2322
},
2423
"notUnique":{
25-
code:2,
2624
message:"The property \"%s\" is not unique. The value \"%s\" already exists.",
2725
args:["propertyName", "propertyValue"],
2826
http:400
2927
},
3028
"propertyNotDefined":{
31-
code:3,
3229
message:"The property named \"%s\" should be defined",
3330
args:["propertyName"],
3431
http:400
@@ -84,7 +81,6 @@ The ```errorObject``` variable will now contain
8481
```javascript
8582
{
8683
"name": "propertyNotDefined",
87-
"code": 3,
8884
"http": 400,
8985
"propertyName": "someProperty",
9086
"message": "The property named \"someProperty\" should be defined",
@@ -132,7 +128,6 @@ The ```err``` variable will now contain:
132128
```json
133129
{
134130
"name": "propertyNotDefined",
135-
"code": 3,
136131
"http": 400,
137132
"propertyName": "someProperty",
138133
"message": "The property named \"someProperty\" should be defined",
@@ -157,7 +152,7 @@ var errorCodes = errors.errorCodes;
157152

158153
function handleDocument(err, document){
159154
if(err){
160-
if(err.code = errorCodes.fileNotFound){
155+
if(err.name = errorCodes.fileNotFound){
161156
return callback(errors.mySpecialError().innerError(err));
162157
}
163158
return callback(err);

test/integration/nodeerrors.spec.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ describe("nodeerrors", function () {
2727
expect(nodeerrors.system).to.be.a("function");
2828
expect(nodeerrors.notUnique).to.be.a("function");
2929
expect(nodeerrors.propertyNotDefined).to.be.a("function");
30-
expect(nodeerrors.errorCodes).to.be.eql({ notUnique: 2, propertyNotDefined: 3, system: 1 });
30+
expect(nodeerrors.errorCodes).to.be.eql({
31+
notUnique: "notUnique",
32+
propertyNotDefined: "propertyNotDefined",
33+
system: "system" });
3134
});
3235
});

test/mocks/.errors.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
module.exports = {
22
"notUnique":{
3-
code:2,
43
message:"The property \"%s\" is not unique. The value \"%s\" already exists.",
54
args:["propertyName", "propertyValue"],
65
http:400
76
},
87
"propertyNotDefined":{
9-
code:3,
108
message:"The property named \"%s\" should be defined",
119
args:["propertyName"],
1210
http:400

test/unit/getErrorConfig.spec.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ describe("when fetching config file", function () {
66
var result = require("../../lib/util/getErrorConfig");
77
expect(result).to.eql({
88
system:{
9-
code:1,
109
message:'There was an internal server error',
1110
http:500
1211
}
@@ -29,7 +28,6 @@ describe("when fetching config file", function () {
2928

3029
var expectedResult = JSON.parse(JSON.stringify(errorsMock));
3130
_(expectedResult).extend({system:{
32-
code:1,
3331
message:'There was an internal server error',
3432
http:500 }
3533
});
@@ -52,7 +50,6 @@ describe("when fetching config file", function () {
5250
var result = requireMock("../../lib/util/getErrorConfig");
5351

5452
expect(result.system).to.eql({
55-
code:1,
5653
message:"There was an internal server error",
5754
http:500
5855
});

test/unit/makeErrorFunction.spec.js

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,21 @@ describe("When making an error function", function () {
33

44
var makeErrorFunction = require("../../lib/util/makeErrorFunction");
55

6-
describe("when there is no code specified", function () {
6+
describe("when there is no name specified", function () {
77

88
it("will give throw an error", function () {
99
var errorCodeSpec = {
1010
message:"There was an internal server error"
1111
};
1212
expect(function () {
13-
makeErrorFunction("system", errorCodeSpec);
14-
}).to["throw"]("The error code specification for system, has no property 'code'");
15-
13+
makeErrorFunction("", errorCodeSpec);
14+
}).to["throw"]("The error code specification has no name");
15+
expect(function () {
16+
makeErrorFunction(null, errorCodeSpec);
17+
}).to["throw"]("The error code specification has no name");
18+
expect(function () {
19+
makeErrorFunction(undefined, errorCodeSpec);
20+
}).to["throw"]("The error code specification has no name");
1621
});
1722

1823
});
@@ -21,30 +26,26 @@ describe("When making an error function", function () {
2126

2227
it("will have a call stack", function () {
2328
var errorCodeSpec = {
24-
code:999,
2529
message:"There was an internal server error"
2630
};
2731
var fn = makeErrorFunction("system", errorCodeSpec);
2832
var error = fn();
2933
expect(error.stack).to.be.ok;
3034
});
3135

32-
it("will give it the correct name, code, id and message", function () {
36+
it("will give it the correct name, id and message", function () {
3337
var errorCodeSpec = {
34-
code:999,
3538
message:"There was an internal server error"
3639
};
3740
var fn = makeErrorFunction("system", errorCodeSpec);
3841
var errorObject = fn();
3942
expect(errorObject.name).to.equal("system");
4043
expect(errorObject.id).to.be.a("string");
41-
expect(errorObject.code).to.equal(errorCodeSpec.code);
4244
expect(errorObject.message).to.equal(errorCodeSpec.message);
4345
});
4446

4547
it("will add properties from spec to error", function () {
4648
var errorCodeSpec = {
47-
code:999,
4849
message:"There was an internal server error",
4950
http: 123456
5051
};
@@ -56,7 +57,6 @@ describe("When making an error function", function () {
5657
it("will store argument passed as 'internal' property", function () {
5758
var internalData = { test:true, myArray: [1,2,3]};
5859
var errorCodeSpec = {
59-
code:999,
6060
message:"There was an internal server error"
6161
};
6262
var fn = makeErrorFunction("test", errorCodeSpec);
@@ -69,7 +69,6 @@ describe("When making an error function", function () {
6969

7070
it("will format the message with one argument", function () {
7171
var errorCodeSpec = {
72-
code:999,
7372
message:"error %s",
7473
args:["myParameter"]
7574
};
@@ -81,7 +80,6 @@ describe("When making an error function", function () {
8180
it("will format the message with one argument and an internal parameter", function () {
8281
var internalData = { test:true, myArray: [1,2,3]};
8382
var errorCodeSpec = {
84-
code:999,
8583
message:"error %s",
8684
args:["myParameter"]
8785
};
@@ -93,7 +91,6 @@ describe("When making an error function", function () {
9391

9492
it("will format the message with two arguments", function () {
9593
var errorCodeSpec = {
96-
code:999,
9794
message:"error %s, %s",
9895
args:["myParameter1", "myParameter2"]
9996
};
@@ -104,7 +101,6 @@ describe("When making an error function", function () {
104101

105102
it("will add the parameter to json in error object message", function () {
106103
var errorCodeSpec = {
107-
code:999,
108104
message:"error %s",
109105
args:["myParameter"]
110106
};
@@ -116,7 +112,6 @@ describe("When making an error function", function () {
116112
it("will accept an object as parameter", function () {
117113
var data = { test:true, myArray: [1,2,3]};
118114
var errorCodeSpec = {
119-
code:999,
120115
message:"error %s",
121116
args:["myParameter"]
122117
};
@@ -128,7 +123,6 @@ describe("When making an error function", function () {
128123
it("will store additional last parameter as 'internal' property", function () {
129124
var data = { test:true, myArray: [1,2,3]};
130125
var errorCodeSpec = {
131-
code:999,
132126
message:"error %s",
133127
args:["myParameter"]
134128
};

test/unit/parse.spec.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ describe("When parsing an error", function () {
1515
it("will wrap a normal exception in a system error", function () {
1616
var result = parse(new Error("my test"));
1717
expect(result).to.have.property("id").to.be.a("string");
18-
expect(result.code).to.equal(1);
18+
expect(result.name).to.equal("system");
1919
expect(result.message).to.equal("There was an internal server error");
2020
expect(result.http).to.equal(500);
2121
expect(result.internal.innerError).to.be.ok;
@@ -28,7 +28,7 @@ describe("When parsing an error", function () {
2828
err.cyclic = getCyclicObject();
2929
var result = parse(err);
3030
expect(result).to.have.property("id").to.be.a("string");
31-
expect(result.code).to.equal(1);
31+
expect(result.name).to.equal("system");
3232
expect(result.message).to.equal("There was an internal server error");
3333
expect(result.http).to.equal(500);
3434
expect(result.internal.innerError).to.be.ok;
@@ -39,7 +39,6 @@ describe("When parsing an error", function () {
3939

4040
it("will handle cyclic property in error, not return nodeErrors-property, and not overwrite id", function () {
4141
var errorCodeSpec = {
42-
code:999,
4342
message:"Test",
4443
http:123456,
4544
cyclic:getCyclicObject()
@@ -49,7 +48,7 @@ describe("When parsing an error", function () {
4948
var errorId = err.id;
5049
var result = parse(err);
5150
expect(result).to.have.property("id").to.be.a("string");
52-
expect(result.code).to.equal(999);
51+
expect(result.name).to.equal("test");
5352
expect(result.message).to.equal("Test");
5453
expect(result.http).to.equal(123456);
5554
expect(result.cyclic).to.equal("[cyclic or too complex]");

0 commit comments

Comments
 (0)