yerror 5.0.0 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/LICENSE +4 -5
  3. package/README.md +85 -22
  4. package/dist/index.js +83 -43
  5. package/dist/index.js.map +1 -0
  6. package/dist/index.mjs +112 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/dist/index.mocha.js +143 -100
  9. package/dist/index.mocha.js.map +1 -0
  10. package/dist/index.mocha.mjs +153 -0
  11. package/dist/index.mocha.mjs.map +1 -0
  12. package/package.json +173 -49
  13. package/src/index.js +52 -4
  14. package/src/index.mocha.js +2 -2
  15. package/.gitattributes +0 -2
  16. package/.nyc_output/00dc2184-5e3c-4e30-a46f-ae7cc1a69a02.json +0 -1
  17. package/.nyc_output/0ede01fe-53e1-435f-b3eb-1df8f8683022.json +0 -1
  18. package/.nyc_output/32a94c4b-415d-42f2-80ae-02e2299d2d09.json +0 -1
  19. package/.nyc_output/5964f491-ff21-4d82-9065-4d98a1cf2a72.json +0 -1
  20. package/.nyc_output/753f19e8-b00d-40af-86d4-f5c7460a8512.json +0 -1
  21. package/.nyc_output/7b3668dc-e84a-4597-aa9a-7a9ca79a4a0b.json +0 -1
  22. package/.nyc_output/97c4112e-25f6-4fa9-8e45-2470696afd0c.json +0 -1
  23. package/.nyc_output/a41790e4-963e-4810-82b3-ea3f1fd3ed42.json +0 -1
  24. package/.nyc_output/a711db83-691b-44a5-9cf0-5bd5d791c358.json +0 -1
  25. package/.nyc_output/a7863a34-92ff-47f2-acd5-268fc48d9114.json +0 -1
  26. package/.nyc_output/aa7b6383-4b7d-4873-ab12-665ec47b5ea4.json +0 -1
  27. package/.nyc_output/c1c442d7-7a0e-4982-8526-03f1bd400806.json +0 -1
  28. package/.nyc_output/c32e5e08-dc5b-4e45-a433-2cf0e9d350c9.json +0 -1
  29. package/.nyc_output/c3b5498e-d857-46b9-afa5-2ea3fd21bd4e.json +0 -1
  30. package/.nyc_output/c47902c8-d5f8-489e-b13e-000ea5dc7636.json +0 -1
  31. package/.nyc_output/cd492b94-ca79-4b8d-8ca3-15ac79ac99f6.json +0 -1
  32. package/.nyc_output/d371f8f1-bbcf-4712-b71c-c839582c672a.json +0 -1
  33. package/.nyc_output/fb7d1240-39cc-42b7-835f-6e39d9501a68.json +0 -1
  34. package/.nyc_output/processinfo/00dc2184-5e3c-4e30-a46f-ae7cc1a69a02.json +0 -1
  35. package/.nyc_output/processinfo/0ede01fe-53e1-435f-b3eb-1df8f8683022.json +0 -1
  36. package/.nyc_output/processinfo/32a94c4b-415d-42f2-80ae-02e2299d2d09.json +0 -1
  37. package/.nyc_output/processinfo/5964f491-ff21-4d82-9065-4d98a1cf2a72.json +0 -1
  38. package/.nyc_output/processinfo/753f19e8-b00d-40af-86d4-f5c7460a8512.json +0 -1
  39. package/.nyc_output/processinfo/7b3668dc-e84a-4597-aa9a-7a9ca79a4a0b.json +0 -1
  40. package/.nyc_output/processinfo/97c4112e-25f6-4fa9-8e45-2470696afd0c.json +0 -1
  41. package/.nyc_output/processinfo/a41790e4-963e-4810-82b3-ea3f1fd3ed42.json +0 -1
  42. package/.nyc_output/processinfo/a711db83-691b-44a5-9cf0-5bd5d791c358.json +0 -1
  43. package/.nyc_output/processinfo/a7863a34-92ff-47f2-acd5-268fc48d9114.json +0 -1
  44. package/.nyc_output/processinfo/aa7b6383-4b7d-4873-ab12-665ec47b5ea4.json +0 -1
  45. package/.nyc_output/processinfo/c1c442d7-7a0e-4982-8526-03f1bd400806.json +0 -1
  46. package/.nyc_output/processinfo/c32e5e08-dc5b-4e45-a433-2cf0e9d350c9.json +0 -1
  47. package/.nyc_output/processinfo/c3b5498e-d857-46b9-afa5-2ea3fd21bd4e.json +0 -1
  48. package/.nyc_output/processinfo/c47902c8-d5f8-489e-b13e-000ea5dc7636.json +0 -1
  49. package/.nyc_output/processinfo/cd492b94-ca79-4b8d-8ca3-15ac79ac99f6.json +0 -1
  50. package/.nyc_output/processinfo/d371f8f1-bbcf-4712-b71c-c839582c672a.json +0 -1
  51. package/.nyc_output/processinfo/fb7d1240-39cc-42b7-835f-6e39d9501a68.json +0 -1
  52. package/.nyc_output/processinfo/index.json +0 -1
  53. package/.travis.yml +0 -11
  54. package/karma.conf.js +0 -127
  55. package/sauce_connect.log +0 -436
@@ -1,158 +1,201 @@
1
1
  "use strict";
2
2
 
3
+ var _assert = _interopRequireDefault(require("assert"));
4
+
5
+ var _ = _interopRequireDefault(require("."));
6
+
7
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8
+
3
9
  /* eslint max-nested-callbacks:[0], no-magic-numbers:[0] */
4
- var assert = require('assert');
5
-
6
- var YError = require('./index.js');
7
-
8
- describe('YError', function () {
9
- describe('.__constructor', function () {
10
- it('Should work', function () {
11
- var err = new YError('E_ERROR', 'arg1', 'arg2');
12
- assert(err instanceof Error);
13
- assert.equal(err.name, err.toString());
14
- assert.equal(err.code, 'E_ERROR');
15
- assert.deepEqual(err.params, ['arg1', 'arg2']);
16
- assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
10
+ describe('YError', () => {
11
+ describe('.__constructor', () => {
12
+ it('Should work', () => {
13
+ var err = new _.default('E_ERROR', 'arg1', 'arg2');
14
+ (0, _assert.default)(err instanceof Error);
15
+
16
+ _assert.default.equal(err.name, err.toString());
17
+
18
+ _assert.default.equal(err.code, 'E_ERROR');
19
+
20
+ _assert.default.deepEqual(err.params, ['arg1', 'arg2']);
21
+
22
+ _assert.default.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
17
23
  });
18
- it('Should work without code', function () {
19
- var err = new YError();
20
- assert.equal(err.code, 'E_UNEXPECTED');
21
- assert.deepEqual(err.params, []);
22
- assert.equal(err.toString(), 'YError: E_UNEXPECTED ()');
23
- assert.equal(err.name, err.toString());
24
+ it('Should work without code', () => {
25
+ var err = new _.default();
26
+
27
+ _assert.default.equal(err.code, 'E_UNEXPECTED');
28
+
29
+ _assert.default.deepEqual(err.params, []);
30
+
31
+ _assert.default.equal(err.toString(), 'YError: E_UNEXPECTED ()');
32
+
33
+ _assert.default.equal(err.name, err.toString());
24
34
  });
25
- it('Should work without new', function () {
26
- var err = new YError('E_ERROR', 'arg1', 'arg2');
27
- assert.equal(err.code, 'E_ERROR');
28
- assert(err instanceof YError);
29
- assert.deepEqual(err.params, ['arg1', 'arg2']);
30
- assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
31
- assert.equal(err.name, err.toString());
35
+ it('Should work without new', () => {
36
+ var err = new _.default('E_ERROR', 'arg1', 'arg2');
37
+
38
+ _assert.default.equal(err.code, 'E_ERROR');
39
+
40
+ (0, _assert.default)(err instanceof _.default);
41
+
42
+ _assert.default.deepEqual(err.params, ['arg1', 'arg2']);
43
+
44
+ _assert.default.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
45
+
46
+ _assert.default.equal(err.name, err.toString());
32
47
  });
33
48
  });
34
- describe('.wrap()', function () {
35
- it('Should work with standard errors and a message', function () {
49
+ describe('.wrap()', () => {
50
+ it('Should work with standard errors and a message', () => {
36
51
  // eslint-disable-line
37
- var err = YError.wrap(new Error('This is an error!'));
38
- assert.equal(err.code, 'E_UNEXPECTED');
39
- assert.equal(err.wrappedErrors.length, 1);
40
- assert.deepEqual(err.params, ['This is an error!']);
52
+ var err = _.default.wrap(new Error('This is an error!'));
53
+
54
+ _assert.default.equal(err.code, 'E_UNEXPECTED');
55
+
56
+ _assert.default.equal(err.wrappedErrors.length, 1);
57
+
58
+ _assert.default.deepEqual(err.params, ['This is an error!']);
41
59
 
42
60
  if (Error.captureStackTrace) {
43
- assert(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
44
- assert(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
45
- assert.equal(err.name, err.toString());
61
+ (0, _assert.default)(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
62
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
63
+
64
+ _assert.default.equal(err.name, err.toString());
46
65
  }
47
66
  });
48
- it('Should work with standard errors and an error code', function () {
49
- var err = YError.wrap(new Error('E_ERROR'));
50
- assert.equal(err.code, 'E_ERROR');
51
- assert.equal(err.wrappedErrors.length, 1);
52
- assert.deepEqual(err.params, []);
67
+ it('Should work with standard errors and an error code', () => {
68
+ var err = _.default.wrap(new Error('E_ERROR'));
69
+
70
+ _assert.default.equal(err.code, 'E_ERROR');
71
+
72
+ _assert.default.equal(err.wrappedErrors.length, 1);
73
+
74
+ _assert.default.deepEqual(err.params, []);
53
75
 
54
76
  if (Error.captureStackTrace) {
55
- assert(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains original error.');
56
- assert(-1 !== err.stack.indexOf('YError: E_ERROR ()'), 'Stack contains cast error.');
77
+ (0, _assert.default)(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains original error.');
78
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR ()'), 'Stack contains cast error.');
57
79
  }
58
80
 
59
- assert.equal(err.name, err.toString());
81
+ _assert.default.equal(err.name, err.toString());
60
82
  });
61
- it('Should work with standard errors, an error code and params', function () {
62
- var err = YError.wrap(new Error('E_ERROR'), 'E_ERROR_2', 'arg1', 'arg2');
63
- assert.equal(err.code, 'E_ERROR_2');
64
- assert.equal(err.wrappedErrors.length, 1);
65
- assert.deepEqual(err.params, ['arg1', 'arg2']);
83
+ it('Should work with standard errors, an error code and params', () => {
84
+ var err = _.default.wrap(new Error('E_ERROR'), 'E_ERROR_2', 'arg1', 'arg2');
85
+
86
+ _assert.default.equal(err.code, 'E_ERROR_2');
87
+
88
+ _assert.default.equal(err.wrappedErrors.length, 1);
89
+
90
+ _assert.default.deepEqual(err.params, ['arg1', 'arg2']);
66
91
 
67
92
  if (Error.captureStackTrace) {
68
- assert(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains first error.');
69
- assert(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg1, arg2)'), 'Stack contains second error.');
93
+ (0, _assert.default)(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains first error.');
94
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg1, arg2)'), 'Stack contains second error.');
70
95
  }
71
96
 
72
- assert.equal(err.name, err.toString());
97
+ _assert.default.equal(err.name, err.toString());
73
98
  });
74
- it('Should work with several wrapped errors', function () {
75
- var err = YError.wrap(YError.wrap(new Error('E_ERROR_1'), 'E_ERROR_2', 'arg2.1', 'arg2.2'), 'E_ERROR_3', 'arg3.1', 'arg3.2');
76
- assert.equal(err.code, 'E_ERROR_3');
77
- assert.equal(err.wrappedErrors.length, 2);
78
- assert.deepEqual(err.params, ['arg3.1', 'arg3.2']);
99
+ it('Should work with several wrapped errors', () => {
100
+ var err = _.default.wrap(_.default.wrap(new Error('E_ERROR_1'), 'E_ERROR_2', 'arg2.1', 'arg2.2'), 'E_ERROR_3', 'arg3.1', 'arg3.2');
101
+
102
+ _assert.default.equal(err.code, 'E_ERROR_3');
103
+
104
+ _assert.default.equal(err.wrappedErrors.length, 2);
105
+
106
+ _assert.default.deepEqual(err.params, ['arg3.1', 'arg3.2']);
79
107
 
80
108
  if (Error.captureStackTrace) {
81
- assert(-1 !== err.stack.indexOf('Error: E_ERROR_1'), 'Stack contains first error.');
82
- assert(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg2.1, arg2.2)'), 'Stack contains second error.');
83
- assert(-1 !== err.stack.indexOf('YError: E_ERROR_3 (arg3.1, arg3.2)'), 'Stack contains second error.');
109
+ (0, _assert.default)(-1 !== err.stack.indexOf('Error: E_ERROR_1'), 'Stack contains first error.');
110
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg2.1, arg2.2)'), 'Stack contains second error.');
111
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR_3 (arg3.1, arg3.2)'), 'Stack contains second error.');
84
112
  }
85
113
 
86
- assert.equal(err.name, err.toString());
114
+ _assert.default.equal(err.name, err.toString());
87
115
  });
88
116
  });
89
- describe('.cast()', function () {
90
- it('Should work with standard errors and a message', function () {
91
- var err = YError.cast(new Error('This is an error!'));
92
- assert.equal(err.code, 'E_UNEXPECTED');
93
- assert.equal(err.wrappedErrors.length, 1);
94
- assert.deepEqual(err.params, ['This is an error!']);
117
+ describe('.cast()', () => {
118
+ it('Should work with standard errors and a message', () => {
119
+ var err = _.default.cast(new Error('This is an error!'));
120
+
121
+ _assert.default.equal(err.code, 'E_UNEXPECTED');
122
+
123
+ _assert.default.equal(err.wrappedErrors.length, 1);
124
+
125
+ _assert.default.deepEqual(err.params, ['This is an error!']);
95
126
 
96
127
  if (Error.captureStackTrace) {
97
- assert(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
98
- assert(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
128
+ (0, _assert.default)(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
129
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
99
130
  }
100
131
 
101
- assert.equal(err.name, err.toString());
132
+ _assert.default.equal(err.name, err.toString());
102
133
  });
103
- it('Should let YError instances pass through', function () {
104
- var err = YError.cast(new YError('E_ERROR', 'arg1', 'arg2'));
105
- assert.equal(err.code, 'E_ERROR');
106
- assert.deepEqual(err.params, ['arg1', 'arg2']);
134
+ it('Should let YError instances pass through', () => {
135
+ var err = _.default.cast(new _.default('E_ERROR', 'arg1', 'arg2'));
136
+
137
+ _assert.default.equal(err.code, 'E_ERROR');
138
+
139
+ _assert.default.deepEqual(err.params, ['arg1', 'arg2']);
107
140
 
108
141
  if (Error.captureStackTrace) {
109
- assert(-1 !== err.stack.indexOf('YError: E_ERROR (arg1, arg2)'), 'Stack contains cast error.');
142
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR (arg1, arg2)'), 'Stack contains cast error.');
110
143
  }
111
144
 
112
- assert.equal(err.name, err.toString());
145
+ _assert.default.equal(err.name, err.toString());
113
146
  });
114
147
  });
115
- describe('.bump()', function () {
116
- it('Should work with standard errors and a message', function () {
117
- var err = YError.bump(new Error('This is an error!'));
118
- assert.equal(err.code, 'E_UNEXPECTED');
119
- assert.equal(err.wrappedErrors.length, 1);
120
- assert.deepEqual(err.params, ['This is an error!']);
148
+ describe('.bump()', () => {
149
+ it('Should work with standard errors and a message', () => {
150
+ var err = _.default.bump(new Error('This is an error!'));
151
+
152
+ _assert.default.equal(err.code, 'E_UNEXPECTED');
153
+
154
+ _assert.default.equal(err.wrappedErrors.length, 1);
155
+
156
+ _assert.default.deepEqual(err.params, ['This is an error!']);
121
157
 
122
158
  if (Error.captureStackTrace) {
123
- assert(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
124
- assert(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains bumped error.');
159
+ (0, _assert.default)(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
160
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains bumped error.');
125
161
  }
126
162
 
127
- assert.equal(err.name, err.toString());
163
+ _assert.default.equal(err.name, err.toString());
128
164
  });
129
- it('Should work with YError like errors', function () {
165
+ it('Should work with YError like errors', () => {
130
166
  var baseErr = new Error('E_A_NEW_ERROR');
131
167
  baseErr.code = 'E_A_NEW_ERROR';
132
168
  baseErr.params = ['baseParam1', 'baseParam2'];
133
- var err = YError.bump(baseErr);
134
- assert.equal(err.code, 'E_A_NEW_ERROR');
135
- assert.equal(err.wrappedErrors.length, 1);
136
- assert.deepEqual(err.params, ['baseParam1', 'baseParam2']);
169
+
170
+ let err = _.default.bump(baseErr);
171
+
172
+ _assert.default.equal(err.code, 'E_A_NEW_ERROR');
173
+
174
+ _assert.default.equal(err.wrappedErrors.length, 1);
175
+
176
+ _assert.default.deepEqual(err.params, ['baseParam1', 'baseParam2']);
137
177
 
138
178
  if (Error.captureStackTrace) {
139
- assert(-1 !== err.stack.indexOf('Error: E_A_NEW_ERROR'), 'Stack contains original error.');
140
- assert(-1 !== err.stack.indexOf('YError: E_A_NEW_ERROR (baseParam1, baseParam2)'), 'Stack contains bumped error.');
179
+ (0, _assert.default)(-1 !== err.stack.indexOf('Error: E_A_NEW_ERROR'), 'Stack contains original error.');
180
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_A_NEW_ERROR (baseParam1, baseParam2)'), 'Stack contains bumped error.');
141
181
  }
142
182
 
143
- assert.equal(err.name, err.toString());
183
+ _assert.default.equal(err.name, err.toString());
144
184
  });
145
- it('Should work with Y errors and a message', function () {
146
- var err = YError.bump(new YError('E_ERROR', 'arg1.1', 'arg1.2'), 'E_ERROR_2', 'arg2.1', 'arg2.2');
147
- assert.equal(err.code, 'E_ERROR');
148
- assert.deepEqual(err.params, ['arg1.1', 'arg1.2']);
185
+ it('Should work with Y errors and a message', () => {
186
+ var err = _.default.bump(new _.default('E_ERROR', 'arg1.1', 'arg1.2'), 'E_ERROR_2', 'arg2.1', 'arg2.2');
187
+
188
+ _assert.default.equal(err.code, 'E_ERROR');
189
+
190
+ _assert.default.deepEqual(err.params, ['arg1.1', 'arg1.2']);
149
191
 
150
192
  if (Error.captureStackTrace) {
151
- assert(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains original error.');
152
- assert(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains bumped error.');
193
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains original error.');
194
+ (0, _assert.default)(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains bumped error.');
153
195
  }
154
196
 
155
- assert.equal(err.name, err.toString());
197
+ _assert.default.equal(err.name, err.toString());
156
198
  });
157
199
  });
158
- });
200
+ });
201
+ //# sourceMappingURL=index.mocha.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mocha.js","names":["describe","it","err","YError","assert","Error","equal","name","toString","code","deepEqual","params","wrap","wrappedErrors","length","captureStackTrace","stack","indexOf","cast","bump","baseErr"],"sources":["../src/index.mocha.js"],"sourcesContent":["/* eslint max-nested-callbacks:[0], no-magic-numbers:[0] */\nimport assert from 'assert';\nimport YError from '.';\n\ndescribe('YError', () => {\n describe('.__constructor', () => {\n it('Should work', () => {\n var err = new YError('E_ERROR', 'arg1', 'arg2');\n\n assert(err instanceof Error);\n assert.equal(err.name, err.toString());\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');\n });\n it('Should work without code', () => {\n var err = new YError();\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.deepEqual(err.params, []);\n assert.equal(err.toString(), 'YError: E_UNEXPECTED ()');\n assert.equal(err.name, err.toString());\n });\n it('Should work without new', () => {\n var err = new YError('E_ERROR', 'arg1', 'arg2');\n\n assert.equal(err.code, 'E_ERROR');\n assert(err instanceof YError);\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.wrap()', () => {\n it('Should work with standard errors and a message', () => {\n // eslint-disable-line\n var err = YError.wrap(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains cast error.',\n );\n assert.equal(err.name, err.toString());\n }\n });\n\n it('Should work with standard errors and an error code', () => {\n var err = YError.wrap(new Error('E_ERROR'));\n\n assert.equal(err.code, 'E_ERROR');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, []);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR ()'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with standard errors, an error code and params', () => {\n var err = YError.wrap(new Error('E_ERROR'), 'E_ERROR_2', 'arg1', 'arg2');\n\n assert.equal(err.code, 'E_ERROR_2');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR'),\n 'Stack contains first error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_2 (arg1, arg2)'),\n 'Stack contains second error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with several wrapped errors', () => {\n var err = YError.wrap(\n YError.wrap(new Error('E_ERROR_1'), 'E_ERROR_2', 'arg2.1', 'arg2.2'),\n 'E_ERROR_3',\n 'arg3.1',\n 'arg3.2',\n );\n\n assert.equal(err.code, 'E_ERROR_3');\n assert.equal(err.wrappedErrors.length, 2);\n assert.deepEqual(err.params, ['arg3.1', 'arg3.2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR_1'),\n 'Stack contains first error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_2 (arg2.1, arg2.2)'),\n 'Stack contains second error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_3 (arg3.1, arg3.2)'),\n 'Stack contains second error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.cast()', () => {\n it('Should work with standard errors and a message', () => {\n var err = YError.cast(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should let YError instances pass through', () => {\n var err = YError.cast(new YError('E_ERROR', 'arg1', 'arg2'));\n\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1, arg2)'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.bump()', () => {\n it('Should work with standard errors and a message', () => {\n var err = YError.bump(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with YError like errors', () => {\n var baseErr = new Error('E_A_NEW_ERROR');\n\n baseErr.code = 'E_A_NEW_ERROR';\n baseErr.params = ['baseParam1', 'baseParam2'];\n\n let err = YError.bump(baseErr);\n\n assert.equal(err.code, 'E_A_NEW_ERROR');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['baseParam1', 'baseParam2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_A_NEW_ERROR'),\n 'Stack contains original error.',\n );\n assert(\n -1 !==\n err.stack.indexOf('YError: E_A_NEW_ERROR (baseParam1, baseParam2)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with Y errors and a message', () => {\n var err = YError.bump(\n new YError('E_ERROR', 'arg1.1', 'arg1.2'),\n 'E_ERROR_2',\n 'arg2.1',\n 'arg2.2',\n );\n\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1.1', 'arg1.2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n});\n"],"mappings":";;AACA;;AACA;;;;AAFA;AAIAA,QAAQ,CAAC,QAAD,EAAW,MAAM;EACvBA,QAAQ,CAAC,gBAAD,EAAmB,MAAM;IAC/BC,EAAE,CAAC,aAAD,EAAgB,MAAM;MACtB,IAAIC,GAAG,GAAG,IAAIC,SAAJ,CAAW,SAAX,EAAsB,MAAtB,EAA8B,MAA9B,CAAV;MAEA,IAAAC,eAAA,EAAOF,GAAG,YAAYG,KAAtB;;MACAD,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;;MACAJ,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,SAAvB;;MACAL,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,MAAD,EAAS,MAAT,CAA7B;;MACAP,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACM,QAAJ,EAAb,EAA6B,8BAA7B;IACD,CARC,CAAF;IASAP,EAAE,CAAC,0BAAD,EAA6B,MAAM;MACnC,IAAIC,GAAG,GAAG,IAAIC,SAAJ,EAAV;;MAEAC,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,cAAvB;;MACAL,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,EAA7B;;MACAP,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACM,QAAJ,EAAb,EAA6B,yBAA7B;;MACAJ,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CAPC,CAAF;IAQAP,EAAE,CAAC,yBAAD,EAA4B,MAAM;MAClC,IAAIC,GAAG,GAAG,IAAIC,SAAJ,CAAW,SAAX,EAAsB,MAAtB,EAA8B,MAA9B,CAAV;;MAEAC,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,SAAvB;;MACA,IAAAL,eAAA,EAAOF,GAAG,YAAYC,SAAtB;;MACAC,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,MAAD,EAAS,MAAT,CAA7B;;MACAP,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACM,QAAJ,EAAb,EAA6B,8BAA7B;;MACAJ,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CARC,CAAF;EASD,CA3BO,CAAR;EA6BAR,QAAQ,CAAC,SAAD,EAAY,MAAM;IACxBC,EAAE,CAAC,gDAAD,EAAmD,MAAM;MACzD;MACA,IAAIC,GAAG,GAAGC,SAAA,CAAOS,IAAP,CAAY,IAAIP,KAAJ,CAAU,mBAAV,CAAZ,CAAV;;MAEAD,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,cAAvB;;MACAL,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACW,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;;MACAV,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,mBAAD,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3B,IAAAX,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,0BAAlB,CADT,EAEE,gCAFF;QAIA,IAAAb,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,0CAAlB,CADT,EAEE,4BAFF;;QAIAb,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;MACD;IACF,CAnBC,CAAF;IAqBAP,EAAE,CAAC,oDAAD,EAAuD,MAAM;MAC7D,IAAIC,GAAG,GAAGC,SAAA,CAAOS,IAAP,CAAY,IAAIP,KAAJ,CAAU,SAAV,CAAZ,CAAV;;MAEAD,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,SAAvB;;MACAL,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACW,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;;MACAV,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,EAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3B,IAAAX,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,gBAAlB,CADT,EAEE,gCAFF;QAIA,IAAAb,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,oBAAlB,CADT,EAEE,4BAFF;MAID;;MACDb,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CAlBC,CAAF;IAoBAP,EAAE,CAAC,4DAAD,EAA+D,MAAM;MACrE,IAAIC,GAAG,GAAGC,SAAA,CAAOS,IAAP,CAAY,IAAIP,KAAJ,CAAU,SAAV,CAAZ,EAAkC,WAAlC,EAA+C,MAA/C,EAAuD,MAAvD,CAAV;;MAEAD,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,WAAvB;;MACAL,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACW,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;;MACAV,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,MAAD,EAAS,MAAT,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3B,IAAAX,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,gBAAlB,CADT,EAEE,6BAFF;QAIA,IAAAb,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,gCAAlB,CADT,EAEE,8BAFF;MAID;;MACDb,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CAlBC,CAAF;IAoBAP,EAAE,CAAC,yCAAD,EAA4C,MAAM;MAClD,IAAIC,GAAG,GAAGC,SAAA,CAAOS,IAAP,CACRT,SAAA,CAAOS,IAAP,CAAY,IAAIP,KAAJ,CAAU,WAAV,CAAZ,EAAoC,WAApC,EAAiD,QAAjD,EAA2D,QAA3D,CADQ,EAER,WAFQ,EAGR,QAHQ,EAIR,QAJQ,CAAV;;MAOAD,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,WAAvB;;MACAL,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACW,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;;MACAV,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,QAAD,EAAW,QAAX,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3B,IAAAX,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,kBAAlB,CADT,EAEE,6BAFF;QAIA,IAAAb,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,oCAAlB,CADT,EAEE,8BAFF;QAIA,IAAAb,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,oCAAlB,CADT,EAEE,8BAFF;MAID;;MACDb,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CA3BC,CAAF;EA4BD,CA1FO,CAAR;EA4FAR,QAAQ,CAAC,SAAD,EAAY,MAAM;IACxBC,EAAE,CAAC,gDAAD,EAAmD,MAAM;MACzD,IAAIC,GAAG,GAAGC,SAAA,CAAOe,IAAP,CAAY,IAAIb,KAAJ,CAAU,mBAAV,CAAZ,CAAV;;MAEAD,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,cAAvB;;MACAL,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACW,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;;MACAV,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,mBAAD,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3B,IAAAX,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,0BAAlB,CADT,EAEE,gCAFF;QAIA,IAAAb,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,0CAAlB,CADT,EAEE,4BAFF;MAID;;MACDb,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CAlBC,CAAF;IAoBAP,EAAE,CAAC,0CAAD,EAA6C,MAAM;MACnD,IAAIC,GAAG,GAAGC,SAAA,CAAOe,IAAP,CAAY,IAAIf,SAAJ,CAAW,SAAX,EAAsB,MAAtB,EAA8B,MAA9B,CAAZ,CAAV;;MAEAC,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,SAAvB;;MACAL,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,MAAD,EAAS,MAAT,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3B,IAAAX,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,8BAAlB,CADT,EAEE,4BAFF;MAID;;MACDb,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CAbC,CAAF;EAcD,CAnCO,CAAR;EAqCAR,QAAQ,CAAC,SAAD,EAAY,MAAM;IACxBC,EAAE,CAAC,gDAAD,EAAmD,MAAM;MACzD,IAAIC,GAAG,GAAGC,SAAA,CAAOgB,IAAP,CAAY,IAAId,KAAJ,CAAU,mBAAV,CAAZ,CAAV;;MAEAD,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,cAAvB;;MACAL,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACW,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;;MACAV,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,mBAAD,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3B,IAAAX,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,0BAAlB,CADT,EAEE,gCAFF;QAIA,IAAAb,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,0CAAlB,CADT,EAEE,8BAFF;MAID;;MACDb,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CAlBC,CAAF;IAoBAP,EAAE,CAAC,qCAAD,EAAwC,MAAM;MAC9C,IAAImB,OAAO,GAAG,IAAIf,KAAJ,CAAU,eAAV,CAAd;MAEAe,OAAO,CAACX,IAAR,GAAe,eAAf;MACAW,OAAO,CAACT,MAAR,GAAiB,CAAC,YAAD,EAAe,YAAf,CAAjB;;MAEA,IAAIT,GAAG,GAAGC,SAAA,CAAOgB,IAAP,CAAYC,OAAZ,CAAV;;MAEAhB,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,eAAvB;;MACAL,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACW,aAAJ,CAAkBC,MAA/B,EAAuC,CAAvC;;MACAV,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,YAAD,EAAe,YAAf,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3B,IAAAX,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,sBAAlB,CADT,EAEE,gCAFF;QAIA,IAAAb,eAAA,EACE,CAAC,CAAD,KACEF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,gDAAlB,CAFJ,EAGE,8BAHF;MAKD;;MACDb,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CAxBC,CAAF;IA0BAP,EAAE,CAAC,yCAAD,EAA4C,MAAM;MAClD,IAAIC,GAAG,GAAGC,SAAA,CAAOgB,IAAP,CACR,IAAIhB,SAAJ,CAAW,SAAX,EAAsB,QAAtB,EAAgC,QAAhC,CADQ,EAER,WAFQ,EAGR,QAHQ,EAIR,QAJQ,CAAV;;MAOAC,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACO,IAAjB,EAAuB,SAAvB;;MACAL,eAAA,CAAOM,SAAP,CAAiBR,GAAG,CAACS,MAArB,EAA6B,CAAC,QAAD,EAAW,QAAX,CAA7B;;MAEA,IAAIN,KAAK,CAACU,iBAAV,EAA6B;QAC3B,IAAAX,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,kCAAlB,CADT,EAEE,gCAFF;QAIA,IAAAb,eAAA,EACE,CAAC,CAAD,KAAOF,GAAG,CAACc,KAAJ,CAAUC,OAAV,CAAkB,kCAAlB,CADT,EAEE,8BAFF;MAID;;MACDb,eAAA,CAAOE,KAAP,CAAaJ,GAAG,CAACK,IAAjB,EAAuBL,GAAG,CAACM,QAAJ,EAAvB;IACD,CAtBC,CAAF;EAuBD,CAtEO,CAAR;AAuED,CAtOO,CAAR"}
@@ -0,0 +1,153 @@
1
+ import assert from 'assert';
2
+ import YError from '.';
3
+ describe('YError', () => {
4
+ describe('.__constructor', () => {
5
+ it('Should work', () => {
6
+ var err = new YError('E_ERROR', 'arg1', 'arg2');
7
+ assert(err instanceof Error);
8
+ assert.equal(err.name, err.toString());
9
+ assert.equal(err.code, 'E_ERROR');
10
+ assert.deepEqual(err.params, ['arg1', 'arg2']);
11
+ assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
12
+ });
13
+ it('Should work without code', () => {
14
+ var err = new YError();
15
+ assert.equal(err.code, 'E_UNEXPECTED');
16
+ assert.deepEqual(err.params, []);
17
+ assert.equal(err.toString(), 'YError: E_UNEXPECTED ()');
18
+ assert.equal(err.name, err.toString());
19
+ });
20
+ it('Should work without new', () => {
21
+ var err = new YError('E_ERROR', 'arg1', 'arg2');
22
+ assert.equal(err.code, 'E_ERROR');
23
+ assert(err instanceof YError);
24
+ assert.deepEqual(err.params, ['arg1', 'arg2']);
25
+ assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');
26
+ assert.equal(err.name, err.toString());
27
+ });
28
+ });
29
+ describe('.wrap()', () => {
30
+ it('Should work with standard errors and a message', () => {
31
+ var err = YError.wrap(new Error('This is an error!'));
32
+ assert.equal(err.code, 'E_UNEXPECTED');
33
+ assert.equal(err.wrappedErrors.length, 1);
34
+ assert.deepEqual(err.params, ['This is an error!']);
35
+
36
+ if (Error.captureStackTrace) {
37
+ assert(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
38
+ assert(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
39
+ assert.equal(err.name, err.toString());
40
+ }
41
+ });
42
+ it('Should work with standard errors and an error code', () => {
43
+ var err = YError.wrap(new Error('E_ERROR'));
44
+ assert.equal(err.code, 'E_ERROR');
45
+ assert.equal(err.wrappedErrors.length, 1);
46
+ assert.deepEqual(err.params, []);
47
+
48
+ if (Error.captureStackTrace) {
49
+ assert(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains original error.');
50
+ assert(-1 !== err.stack.indexOf('YError: E_ERROR ()'), 'Stack contains cast error.');
51
+ }
52
+
53
+ assert.equal(err.name, err.toString());
54
+ });
55
+ it('Should work with standard errors, an error code and params', () => {
56
+ var err = YError.wrap(new Error('E_ERROR'), 'E_ERROR_2', 'arg1', 'arg2');
57
+ assert.equal(err.code, 'E_ERROR_2');
58
+ assert.equal(err.wrappedErrors.length, 1);
59
+ assert.deepEqual(err.params, ['arg1', 'arg2']);
60
+
61
+ if (Error.captureStackTrace) {
62
+ assert(-1 !== err.stack.indexOf('Error: E_ERROR'), 'Stack contains first error.');
63
+ assert(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg1, arg2)'), 'Stack contains second error.');
64
+ }
65
+
66
+ assert.equal(err.name, err.toString());
67
+ });
68
+ it('Should work with several wrapped errors', () => {
69
+ var err = YError.wrap(YError.wrap(new Error('E_ERROR_1'), 'E_ERROR_2', 'arg2.1', 'arg2.2'), 'E_ERROR_3', 'arg3.1', 'arg3.2');
70
+ assert.equal(err.code, 'E_ERROR_3');
71
+ assert.equal(err.wrappedErrors.length, 2);
72
+ assert.deepEqual(err.params, ['arg3.1', 'arg3.2']);
73
+
74
+ if (Error.captureStackTrace) {
75
+ assert(-1 !== err.stack.indexOf('Error: E_ERROR_1'), 'Stack contains first error.');
76
+ assert(-1 !== err.stack.indexOf('YError: E_ERROR_2 (arg2.1, arg2.2)'), 'Stack contains second error.');
77
+ assert(-1 !== err.stack.indexOf('YError: E_ERROR_3 (arg3.1, arg3.2)'), 'Stack contains second error.');
78
+ }
79
+
80
+ assert.equal(err.name, err.toString());
81
+ });
82
+ });
83
+ describe('.cast()', () => {
84
+ it('Should work with standard errors and a message', () => {
85
+ var err = YError.cast(new Error('This is an error!'));
86
+ assert.equal(err.code, 'E_UNEXPECTED');
87
+ assert.equal(err.wrappedErrors.length, 1);
88
+ assert.deepEqual(err.params, ['This is an error!']);
89
+
90
+ if (Error.captureStackTrace) {
91
+ assert(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
92
+ assert(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains cast error.');
93
+ }
94
+
95
+ assert.equal(err.name, err.toString());
96
+ });
97
+ it('Should let YError instances pass through', () => {
98
+ var err = YError.cast(new YError('E_ERROR', 'arg1', 'arg2'));
99
+ assert.equal(err.code, 'E_ERROR');
100
+ assert.deepEqual(err.params, ['arg1', 'arg2']);
101
+
102
+ if (Error.captureStackTrace) {
103
+ assert(-1 !== err.stack.indexOf('YError: E_ERROR (arg1, arg2)'), 'Stack contains cast error.');
104
+ }
105
+
106
+ assert.equal(err.name, err.toString());
107
+ });
108
+ });
109
+ describe('.bump()', () => {
110
+ it('Should work with standard errors and a message', () => {
111
+ var err = YError.bump(new Error('This is an error!'));
112
+ assert.equal(err.code, 'E_UNEXPECTED');
113
+ assert.equal(err.wrappedErrors.length, 1);
114
+ assert.deepEqual(err.params, ['This is an error!']);
115
+
116
+ if (Error.captureStackTrace) {
117
+ assert(-1 !== err.stack.indexOf('Error: This is an error!'), 'Stack contains original error.');
118
+ assert(-1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'), 'Stack contains bumped error.');
119
+ }
120
+
121
+ assert.equal(err.name, err.toString());
122
+ });
123
+ it('Should work with YError like errors', () => {
124
+ var baseErr = new Error('E_A_NEW_ERROR');
125
+ baseErr.code = 'E_A_NEW_ERROR';
126
+ baseErr.params = ['baseParam1', 'baseParam2'];
127
+ let err = YError.bump(baseErr);
128
+ assert.equal(err.code, 'E_A_NEW_ERROR');
129
+ assert.equal(err.wrappedErrors.length, 1);
130
+ assert.deepEqual(err.params, ['baseParam1', 'baseParam2']);
131
+
132
+ if (Error.captureStackTrace) {
133
+ assert(-1 !== err.stack.indexOf('Error: E_A_NEW_ERROR'), 'Stack contains original error.');
134
+ assert(-1 !== err.stack.indexOf('YError: E_A_NEW_ERROR (baseParam1, baseParam2)'), 'Stack contains bumped error.');
135
+ }
136
+
137
+ assert.equal(err.name, err.toString());
138
+ });
139
+ it('Should work with Y errors and a message', () => {
140
+ var err = YError.bump(new YError('E_ERROR', 'arg1.1', 'arg1.2'), 'E_ERROR_2', 'arg2.1', 'arg2.2');
141
+ assert.equal(err.code, 'E_ERROR');
142
+ assert.deepEqual(err.params, ['arg1.1', 'arg1.2']);
143
+
144
+ if (Error.captureStackTrace) {
145
+ assert(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains original error.');
146
+ assert(-1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'), 'Stack contains bumped error.');
147
+ }
148
+
149
+ assert.equal(err.name, err.toString());
150
+ });
151
+ });
152
+ });
153
+ //# sourceMappingURL=index.mocha.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mocha.mjs","names":["assert","YError","describe","it","err","Error","equal","name","toString","code","deepEqual","params","wrap","wrappedErrors","length","captureStackTrace","stack","indexOf","cast","bump","baseErr"],"sources":["../src/index.mocha.js"],"sourcesContent":["/* eslint max-nested-callbacks:[0], no-magic-numbers:[0] */\nimport assert from 'assert';\nimport YError from '.';\n\ndescribe('YError', () => {\n describe('.__constructor', () => {\n it('Should work', () => {\n var err = new YError('E_ERROR', 'arg1', 'arg2');\n\n assert(err instanceof Error);\n assert.equal(err.name, err.toString());\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');\n });\n it('Should work without code', () => {\n var err = new YError();\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.deepEqual(err.params, []);\n assert.equal(err.toString(), 'YError: E_UNEXPECTED ()');\n assert.equal(err.name, err.toString());\n });\n it('Should work without new', () => {\n var err = new YError('E_ERROR', 'arg1', 'arg2');\n\n assert.equal(err.code, 'E_ERROR');\n assert(err instanceof YError);\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n assert.equal(err.toString(), 'YError: E_ERROR (arg1, arg2)');\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.wrap()', () => {\n it('Should work with standard errors and a message', () => {\n // eslint-disable-line\n var err = YError.wrap(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains cast error.',\n );\n assert.equal(err.name, err.toString());\n }\n });\n\n it('Should work with standard errors and an error code', () => {\n var err = YError.wrap(new Error('E_ERROR'));\n\n assert.equal(err.code, 'E_ERROR');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, []);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR ()'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with standard errors, an error code and params', () => {\n var err = YError.wrap(new Error('E_ERROR'), 'E_ERROR_2', 'arg1', 'arg2');\n\n assert.equal(err.code, 'E_ERROR_2');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR'),\n 'Stack contains first error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_2 (arg1, arg2)'),\n 'Stack contains second error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with several wrapped errors', () => {\n var err = YError.wrap(\n YError.wrap(new Error('E_ERROR_1'), 'E_ERROR_2', 'arg2.1', 'arg2.2'),\n 'E_ERROR_3',\n 'arg3.1',\n 'arg3.2',\n );\n\n assert.equal(err.code, 'E_ERROR_3');\n assert.equal(err.wrappedErrors.length, 2);\n assert.deepEqual(err.params, ['arg3.1', 'arg3.2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_ERROR_1'),\n 'Stack contains first error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_2 (arg2.1, arg2.2)'),\n 'Stack contains second error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR_3 (arg3.1, arg3.2)'),\n 'Stack contains second error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.cast()', () => {\n it('Should work with standard errors and a message', () => {\n var err = YError.cast(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should let YError instances pass through', () => {\n var err = YError.cast(new YError('E_ERROR', 'arg1', 'arg2'));\n\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1', 'arg2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1, arg2)'),\n 'Stack contains cast error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n\n describe('.bump()', () => {\n it('Should work with standard errors and a message', () => {\n var err = YError.bump(new Error('This is an error!'));\n\n assert.equal(err.code, 'E_UNEXPECTED');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['This is an error!']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: This is an error!'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_UNEXPECTED (This is an error!)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with YError like errors', () => {\n var baseErr = new Error('E_A_NEW_ERROR');\n\n baseErr.code = 'E_A_NEW_ERROR';\n baseErr.params = ['baseParam1', 'baseParam2'];\n\n let err = YError.bump(baseErr);\n\n assert.equal(err.code, 'E_A_NEW_ERROR');\n assert.equal(err.wrappedErrors.length, 1);\n assert.deepEqual(err.params, ['baseParam1', 'baseParam2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('Error: E_A_NEW_ERROR'),\n 'Stack contains original error.',\n );\n assert(\n -1 !==\n err.stack.indexOf('YError: E_A_NEW_ERROR (baseParam1, baseParam2)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n\n it('Should work with Y errors and a message', () => {\n var err = YError.bump(\n new YError('E_ERROR', 'arg1.1', 'arg1.2'),\n 'E_ERROR_2',\n 'arg2.1',\n 'arg2.2',\n );\n\n assert.equal(err.code, 'E_ERROR');\n assert.deepEqual(err.params, ['arg1.1', 'arg1.2']);\n\n if (Error.captureStackTrace) {\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'),\n 'Stack contains original error.',\n );\n assert(\n -1 !== err.stack.indexOf('YError: E_ERROR (arg1.1, arg1.2)'),\n 'Stack contains bumped error.',\n );\n }\n assert.equal(err.name, err.toString());\n });\n });\n});\n"],"mappings":"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"}