@hg-ts/exception 0.7.27 → 0.8.1
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.
- package/dist/tests/serialization.browser.test.d.ts +6 -0
- package/dist/tests/serialization.browser.test.d.ts.map +1 -0
- package/dist/tests/serialization.browser.test.js +49 -0
- package/dist/tests/serialization.browser.test.js.map +1 -0
- package/dist/tests/serialization.node.test.d.ts +8 -0
- package/dist/tests/serialization.node.test.d.ts.map +1 -0
- package/dist/tests/serialization.node.test.js +72 -0
- package/dist/tests/serialization.node.test.js.map +1 -0
- package/dist/tests/serialization.test.d.ts +0 -6
- package/dist/tests/serialization.test.d.ts.map +1 -1
- package/dist/tests/serialization.test.js +0 -100
- package/dist/tests/serialization.test.js.map +1 -1
- package/package.json +7 -5
- package/src/tests/serialization.browser.test.ts +47 -0
- package/src/tests/serialization.node.test.ts +60 -0
- package/src/tests/serialization.test.ts +0 -86
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Suite } from '@hg-ts/tests';
|
|
2
|
+
export declare class SerializationBrowserTestSuite extends Suite {
|
|
3
|
+
shouldWorkWithoutCaptureStackTrace(): Promise<void>;
|
|
4
|
+
shouldSplitStackWithLfSeparator(): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=serialization.browser.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.browser.test.d.ts","sourceRoot":"","sources":["../../src/tests/serialization.browser.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAItB,qBACa,6BAA8B,SAAQ,KAAK;IAE1C,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBnD,+BAA+B,IAAI,OAAO,CAAC,IAAI,CAAC;CAe7D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Describe, expect, Suite, Test, } from '@hg-ts/tests';
|
|
3
|
+
import { BaseException } from '../exceptions/index.js';
|
|
4
|
+
import { TestException } from './test.exception.js';
|
|
5
|
+
let SerializationBrowserTestSuite = class SerializationBrowserTestSuite extends Suite {
|
|
6
|
+
async shouldWorkWithoutCaptureStackTrace() {
|
|
7
|
+
const originalCaptureStackTrace = Error.captureStackTrace;
|
|
8
|
+
try {
|
|
9
|
+
Reflect.set(Error, 'captureStackTrace', undefined);
|
|
10
|
+
const exception = new TestException('Browser compatible message');
|
|
11
|
+
expect(exception.message).toEqual('Browser compatible message');
|
|
12
|
+
expect(exception.toJSON().stack).toBeInstanceOf(Array);
|
|
13
|
+
expect(exception.toJSON().stack).not.toEqual([]);
|
|
14
|
+
}
|
|
15
|
+
finally {
|
|
16
|
+
Reflect.set(Error, 'captureStackTrace', originalCaptureStackTrace);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
async shouldSplitStackWithLfSeparator() {
|
|
20
|
+
const stack = [
|
|
21
|
+
'TestException: Test message',
|
|
22
|
+
'at new TestException (/test/exception.ts:1:1)',
|
|
23
|
+
'at browserHandler (/test/browser.ts:2:2)',
|
|
24
|
+
].join('\n');
|
|
25
|
+
const exception = BaseException.fromError({
|
|
26
|
+
message: 'Test message',
|
|
27
|
+
name: 'Error',
|
|
28
|
+
stack,
|
|
29
|
+
});
|
|
30
|
+
expect(exception.toJSON().stack).toContain('at browserHandler (/test/browser.ts:2:2)');
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
__decorate([
|
|
34
|
+
Test(),
|
|
35
|
+
__metadata("design:type", Function),
|
|
36
|
+
__metadata("design:paramtypes", []),
|
|
37
|
+
__metadata("design:returntype", Promise)
|
|
38
|
+
], SerializationBrowserTestSuite.prototype, "shouldWorkWithoutCaptureStackTrace", null);
|
|
39
|
+
__decorate([
|
|
40
|
+
Test(),
|
|
41
|
+
__metadata("design:type", Function),
|
|
42
|
+
__metadata("design:paramtypes", []),
|
|
43
|
+
__metadata("design:returntype", Promise)
|
|
44
|
+
], SerializationBrowserTestSuite.prototype, "shouldSplitStackWithLfSeparator", null);
|
|
45
|
+
SerializationBrowserTestSuite = __decorate([
|
|
46
|
+
Describe()
|
|
47
|
+
], SerializationBrowserTestSuite);
|
|
48
|
+
export { SerializationBrowserTestSuite };
|
|
49
|
+
//# sourceMappingURL=serialization.browser.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.browser.test.js","sourceRoot":"","sources":["../../src/tests/serialization.browser.test.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,GACJ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG7C,IAAM,6BAA6B,GAAnC,MAAM,6BAA8B,SAAQ,KAAK;IAE1C,AAAN,KAAK,CAAC,kCAAkC;QAE9C,MAAM,yBAAyB,GAAG,KAAK,CAAC,iBAAiB,CAAC;QAE1D,IAAI,CAAC;YAEJ,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,SAAS,CAAC,CAAC;YAEnD,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,4BAA4B,CAAC,CAAC;YAElE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAChE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACvD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAClD,CAAC;gBAAS,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;IAGY,AAAN,KAAK,CAAC,+BAA+B;QAC3C,MAAM,KAAK,GAAG;YACb,6BAA6B;YAC7B,+CAA+C;YAC/C,0CAA0C;SAC1C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;YACzC,OAAO,EAAE,cAAc;YACvB,IAAI,EAAE,OAAO;YACb,KAAK;SACI,CAAC,CAAC;QAEZ,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,0CAA0C,CAAC,CAAC;IACxF,CAAC;CACD,CAAA;AAlCa;IADZ,IAAI,EAAE;;;;uFAiBN;AAGY;IADZ,IAAI,EAAE;;;;oFAeN;AAnCW,6BAA6B;IADzC,QAAQ,EAAE;GACE,6BAA6B,CAoCzC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Suite } from '@hg-ts/tests';
|
|
2
|
+
export declare class SerializationNodeTestSuite extends Suite {
|
|
3
|
+
isFromNextTickTest(): Promise<void>;
|
|
4
|
+
isFromImmediateTest(): Promise<void>;
|
|
5
|
+
fromTimeoutTest(): Promise<void>;
|
|
6
|
+
fromIntervalTest(): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=serialization.node.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.node.test.d.ts","sourceRoot":"","sources":["../../src/tests/serialization.node.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAGtB,qBACa,0BAA2B,SAAQ,KAAK;IAEvC,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYnC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAYpC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAY9C"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { __decorate, __metadata } from "tslib";
|
|
2
|
+
import { Describe, expect, Suite, Test, } from '@hg-ts/tests';
|
|
3
|
+
import { TestException } from './test.exception.js';
|
|
4
|
+
let SerializationNodeTestSuite = class SerializationNodeTestSuite extends Suite {
|
|
5
|
+
async isFromNextTickTest() {
|
|
6
|
+
return new Promise(resolve => {
|
|
7
|
+
process.nextTick(() => {
|
|
8
|
+
const exception = new TestException('Test message');
|
|
9
|
+
expect(exception.isFromNextTick()).toBeTruthy();
|
|
10
|
+
resolve();
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
async isFromImmediateTest() {
|
|
15
|
+
return new Promise(resolve => {
|
|
16
|
+
setImmediate(() => {
|
|
17
|
+
const exception = new TestException('Test message');
|
|
18
|
+
expect(exception.isFromImmediate()).toBeTruthy();
|
|
19
|
+
resolve();
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async fromTimeoutTest() {
|
|
24
|
+
return new Promise(resolve => {
|
|
25
|
+
setTimeout(() => {
|
|
26
|
+
const exception = new TestException('Test message');
|
|
27
|
+
expect(exception.isFromTimer()).toBeTruthy();
|
|
28
|
+
resolve();
|
|
29
|
+
}, 0);
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
async fromIntervalTest() {
|
|
33
|
+
let interval;
|
|
34
|
+
return new Promise(resolve => {
|
|
35
|
+
interval = setInterval(() => {
|
|
36
|
+
const exception = new TestException('Test message');
|
|
37
|
+
expect(exception.isFromTimer()).toBeTruthy();
|
|
38
|
+
clearInterval(interval);
|
|
39
|
+
resolve();
|
|
40
|
+
}, 0);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
__decorate([
|
|
45
|
+
Test(),
|
|
46
|
+
__metadata("design:type", Function),
|
|
47
|
+
__metadata("design:paramtypes", []),
|
|
48
|
+
__metadata("design:returntype", Promise)
|
|
49
|
+
], SerializationNodeTestSuite.prototype, "isFromNextTickTest", null);
|
|
50
|
+
__decorate([
|
|
51
|
+
Test(),
|
|
52
|
+
__metadata("design:type", Function),
|
|
53
|
+
__metadata("design:paramtypes", []),
|
|
54
|
+
__metadata("design:returntype", Promise)
|
|
55
|
+
], SerializationNodeTestSuite.prototype, "isFromImmediateTest", null);
|
|
56
|
+
__decorate([
|
|
57
|
+
Test(),
|
|
58
|
+
__metadata("design:type", Function),
|
|
59
|
+
__metadata("design:paramtypes", []),
|
|
60
|
+
__metadata("design:returntype", Promise)
|
|
61
|
+
], SerializationNodeTestSuite.prototype, "fromTimeoutTest", null);
|
|
62
|
+
__decorate([
|
|
63
|
+
Test(),
|
|
64
|
+
__metadata("design:type", Function),
|
|
65
|
+
__metadata("design:paramtypes", []),
|
|
66
|
+
__metadata("design:returntype", Promise)
|
|
67
|
+
], SerializationNodeTestSuite.prototype, "fromIntervalTest", null);
|
|
68
|
+
SerializationNodeTestSuite = __decorate([
|
|
69
|
+
Describe()
|
|
70
|
+
], SerializationNodeTestSuite);
|
|
71
|
+
export { SerializationNodeTestSuite };
|
|
72
|
+
//# sourceMappingURL=serialization.node.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serialization.node.test.js","sourceRoot":"","sources":["../../src/tests/serialization.node.test.ts"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,MAAM,EACN,KAAK,EACL,IAAI,GACJ,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAG7C,IAAM,0BAA0B,GAAhC,MAAM,0BAA2B,SAAQ,KAAK;IAEvC,AAAN,KAAK,CAAC,kBAAkB;QAC9B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gBACrB,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAChD,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,mBAAmB;QAC/B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,YAAY,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBACjD,OAAO,EAAE,CAAC;YACX,CAAC,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,eAAe;QAC3B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,UAAU,CAAC,GAAG,EAAE;gBACf,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC7C,OAAO,EAAE,CAAC;YACX,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACJ,CAAC;IAGY,AAAN,KAAK,CAAC,gBAAgB;QAC5B,IAAI,QAAwB,CAAC;QAC7B,OAAO,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;YAClC,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;gBAC3B,MAAM,SAAS,GAAG,IAAI,aAAa,CAAC,cAAc,CAAC,CAAC;gBAEpD,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC;gBAC7C,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,EAAE,CAAC;YACX,CAAC,EAAE,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAA;AAhDa;IADZ,IAAI,EAAE;;;;oEAUN;AAGY;IADZ,IAAI,EAAE;;;;qEAUN;AAGY;IADZ,IAAI,EAAE;;;;iEAUN;AAGY;IADZ,IAAI,EAAE;;;;kEAYN;AAjDW,0BAA0B;IADtC,QAAQ,EAAE;GACE,0BAA0B,CAkDtC"}
|
|
@@ -4,11 +4,5 @@ export declare class SerializationTestSuite extends Suite {
|
|
|
4
4
|
baseExceptionFromError(): Promise<void>;
|
|
5
5
|
aggregateExceptionTest(): Promise<void>;
|
|
6
6
|
syncStackTest(): Promise<void>;
|
|
7
|
-
isFromNextTickTest(): Promise<void>;
|
|
8
|
-
isFromImmediateTest(): Promise<void>;
|
|
9
|
-
fromTimeoutTest(): Promise<void>;
|
|
10
|
-
fromIntervalTest(): Promise<void>;
|
|
11
|
-
shouldWorkWithoutCaptureStackTrace(): Promise<void>;
|
|
12
|
-
shouldSplitStackWithLfSeparator(): Promise<void>;
|
|
13
7
|
}
|
|
14
8
|
//# sourceMappingURL=serialization.test.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.test.d.ts","sourceRoot":"","sources":["../../src/tests/serialization.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAStB,qBACa,sBAAuB,SAAQ,KAAK;IAEnC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAevC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"serialization.test.d.ts","sourceRoot":"","sources":["../../src/tests/serialization.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,KAAK,EAEL,MAAM,cAAc,CAAC;AAStB,qBACa,sBAAuB,SAAQ,KAAK;IAEnC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAe3B,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAevC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBvC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAK3C"}
|
|
@@ -44,70 +44,6 @@ let SerializationTestSuite = class SerializationTestSuite extends Suite {
|
|
|
44
44
|
const { stack } = new TestException('Test message').toJSON();
|
|
45
45
|
expect(stack[0].startsWith(`at ${this.constructor.name}.syncStackTest`)).toBeTruthy();
|
|
46
46
|
}
|
|
47
|
-
async isFromNextTickTest() {
|
|
48
|
-
return new Promise(resolve => {
|
|
49
|
-
process.nextTick(() => {
|
|
50
|
-
const exception = new TestException('Test message');
|
|
51
|
-
expect(exception.isFromNextTick()).toBeTruthy();
|
|
52
|
-
resolve();
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
async isFromImmediateTest() {
|
|
57
|
-
return new Promise(resolve => {
|
|
58
|
-
setImmediate(() => {
|
|
59
|
-
const exception = new TestException('Test message');
|
|
60
|
-
expect(exception.isFromImmediate()).toBeTruthy();
|
|
61
|
-
resolve();
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
async fromTimeoutTest() {
|
|
66
|
-
return new Promise(resolve => {
|
|
67
|
-
setTimeout(() => {
|
|
68
|
-
const exception = new TestException('Test message');
|
|
69
|
-
expect(exception.isFromTimer()).toBeTruthy();
|
|
70
|
-
resolve();
|
|
71
|
-
}, 0);
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
async fromIntervalTest() {
|
|
75
|
-
let interval;
|
|
76
|
-
return new Promise(resolve => {
|
|
77
|
-
interval = setInterval(() => {
|
|
78
|
-
const exception = new TestException('Test message');
|
|
79
|
-
expect(exception.isFromTimer()).toBeTruthy();
|
|
80
|
-
clearInterval(interval);
|
|
81
|
-
resolve();
|
|
82
|
-
}, 0);
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
async shouldWorkWithoutCaptureStackTrace() {
|
|
86
|
-
const originalCaptureStackTrace = Error.captureStackTrace;
|
|
87
|
-
try {
|
|
88
|
-
Reflect.set(Error, 'captureStackTrace', undefined);
|
|
89
|
-
const exception = new TestException('Browser compatible message');
|
|
90
|
-
expect(exception.message).toEqual('Browser compatible message');
|
|
91
|
-
expect(exception.toJSON().stack).toBeInstanceOf(Array);
|
|
92
|
-
expect(exception.toJSON().stack).not.toEqual([]);
|
|
93
|
-
}
|
|
94
|
-
finally {
|
|
95
|
-
Reflect.set(Error, 'captureStackTrace', originalCaptureStackTrace);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
async shouldSplitStackWithLfSeparator() {
|
|
99
|
-
const stack = [
|
|
100
|
-
'TestException: Test message',
|
|
101
|
-
'at new TestException (/test/exception.ts:1:1)',
|
|
102
|
-
'at browserHandler (/test/browser.ts:2:2)',
|
|
103
|
-
].join('\n');
|
|
104
|
-
const exception = BaseException.fromError({
|
|
105
|
-
message: 'Test message',
|
|
106
|
-
name: 'Error',
|
|
107
|
-
stack,
|
|
108
|
-
});
|
|
109
|
-
expect(exception.toJSON().stack).toContain('at browserHandler (/test/browser.ts:2:2)');
|
|
110
|
-
}
|
|
111
47
|
};
|
|
112
48
|
__decorate([
|
|
113
49
|
Test(),
|
|
@@ -133,42 +69,6 @@ __decorate([
|
|
|
133
69
|
__metadata("design:paramtypes", []),
|
|
134
70
|
__metadata("design:returntype", Promise)
|
|
135
71
|
], SerializationTestSuite.prototype, "syncStackTest", null);
|
|
136
|
-
__decorate([
|
|
137
|
-
Test(),
|
|
138
|
-
__metadata("design:type", Function),
|
|
139
|
-
__metadata("design:paramtypes", []),
|
|
140
|
-
__metadata("design:returntype", Promise)
|
|
141
|
-
], SerializationTestSuite.prototype, "isFromNextTickTest", null);
|
|
142
|
-
__decorate([
|
|
143
|
-
Test(),
|
|
144
|
-
__metadata("design:type", Function),
|
|
145
|
-
__metadata("design:paramtypes", []),
|
|
146
|
-
__metadata("design:returntype", Promise)
|
|
147
|
-
], SerializationTestSuite.prototype, "isFromImmediateTest", null);
|
|
148
|
-
__decorate([
|
|
149
|
-
Test(),
|
|
150
|
-
__metadata("design:type", Function),
|
|
151
|
-
__metadata("design:paramtypes", []),
|
|
152
|
-
__metadata("design:returntype", Promise)
|
|
153
|
-
], SerializationTestSuite.prototype, "fromTimeoutTest", null);
|
|
154
|
-
__decorate([
|
|
155
|
-
Test(),
|
|
156
|
-
__metadata("design:type", Function),
|
|
157
|
-
__metadata("design:paramtypes", []),
|
|
158
|
-
__metadata("design:returntype", Promise)
|
|
159
|
-
], SerializationTestSuite.prototype, "fromIntervalTest", null);
|
|
160
|
-
__decorate([
|
|
161
|
-
Test(),
|
|
162
|
-
__metadata("design:type", Function),
|
|
163
|
-
__metadata("design:paramtypes", []),
|
|
164
|
-
__metadata("design:returntype", Promise)
|
|
165
|
-
], SerializationTestSuite.prototype, "shouldWorkWithoutCaptureStackTrace", null);
|
|
166
|
-
__decorate([
|
|
167
|
-
Test(),
|
|
168
|
-
__metadata("design:type", Function),
|
|
169
|
-
__metadata("design:paramtypes", []),
|
|
170
|
-
__metadata("design:returntype", Promise)
|
|
171
|
-
], SerializationTestSuite.prototype, "shouldSplitStackWithLfSeparator", null);
|
|
172
72
|
SerializationTestSuite = __decorate([
|
|
173
73
|
Describe()
|
|
174
74
|
], SerializationTestSuite);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialization.test.js","sourceRoot":"","sources":["../../src/tests/serialization.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"serialization.test.js","sourceRoot":"","sources":["../../src/tests/serialization.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hg-ts/exception",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -18,13 +18,15 @@
|
|
|
18
18
|
"test:dev": "vitest watch"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@hg-ts-config/typescript": "0.
|
|
22
|
-
"@hg-ts/linter": "0.
|
|
23
|
-
"@hg-ts/tests": "0.
|
|
24
|
-
"@hg-ts/types": "0.
|
|
21
|
+
"@hg-ts-config/typescript": "0.8.1",
|
|
22
|
+
"@hg-ts/linter": "0.8.1",
|
|
23
|
+
"@hg-ts/tests": "0.8.1",
|
|
24
|
+
"@hg-ts/types": "0.8.1",
|
|
25
25
|
"@types/node": "22.19.1",
|
|
26
|
+
"@vitest/browser-playwright": "4.0.14",
|
|
26
27
|
"@vitest/coverage-v8": "4.0.14",
|
|
27
28
|
"eslint": "9.18.0",
|
|
29
|
+
"playwright": "1.55.0",
|
|
28
30
|
"reflect-metadata": "0.2.2",
|
|
29
31
|
"ts-node": "10.9.2",
|
|
30
32
|
"tsc-watch": "6.3.0",
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Describe,
|
|
3
|
+
expect,
|
|
4
|
+
Suite,
|
|
5
|
+
Test,
|
|
6
|
+
} from '@hg-ts/tests';
|
|
7
|
+
import { BaseException } from '../exceptions/index.js';
|
|
8
|
+
import { TestException } from './test.exception.js';
|
|
9
|
+
|
|
10
|
+
@Describe()
|
|
11
|
+
export class SerializationBrowserTestSuite extends Suite {
|
|
12
|
+
@Test()
|
|
13
|
+
public async shouldWorkWithoutCaptureStackTrace(): Promise<void> {
|
|
14
|
+
// eslint-disable-next-line @typescript/unbound-method
|
|
15
|
+
const originalCaptureStackTrace = Error.captureStackTrace;
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
// eslint-disable-next-line no-undefined
|
|
19
|
+
Reflect.set(Error, 'captureStackTrace', undefined);
|
|
20
|
+
|
|
21
|
+
const exception = new TestException('Browser compatible message');
|
|
22
|
+
|
|
23
|
+
expect(exception.message).toEqual('Browser compatible message');
|
|
24
|
+
expect(exception.toJSON().stack).toBeInstanceOf(Array);
|
|
25
|
+
expect(exception.toJSON().stack).not.toEqual([]);
|
|
26
|
+
} finally {
|
|
27
|
+
Reflect.set(Error, 'captureStackTrace', originalCaptureStackTrace);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
@Test()
|
|
32
|
+
public async shouldSplitStackWithLfSeparator(): Promise<void> {
|
|
33
|
+
const stack = [
|
|
34
|
+
'TestException: Test message',
|
|
35
|
+
'at new TestException (/test/exception.ts:1:1)',
|
|
36
|
+
'at browserHandler (/test/browser.ts:2:2)',
|
|
37
|
+
].join('\n');
|
|
38
|
+
|
|
39
|
+
const exception = BaseException.fromError({
|
|
40
|
+
message: 'Test message',
|
|
41
|
+
name: 'Error',
|
|
42
|
+
stack,
|
|
43
|
+
} as Error);
|
|
44
|
+
|
|
45
|
+
expect(exception.toJSON().stack).toContain('at browserHandler (/test/browser.ts:2:2)');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Describe,
|
|
3
|
+
expect,
|
|
4
|
+
Suite,
|
|
5
|
+
Test,
|
|
6
|
+
} from '@hg-ts/tests';
|
|
7
|
+
import { TestException } from './test.exception.js';
|
|
8
|
+
|
|
9
|
+
@Describe()
|
|
10
|
+
export class SerializationNodeTestSuite extends Suite {
|
|
11
|
+
@Test()
|
|
12
|
+
public async isFromNextTickTest(): Promise<void> {
|
|
13
|
+
return new Promise<void>(resolve => {
|
|
14
|
+
process.nextTick(() => {
|
|
15
|
+
const exception = new TestException('Test message');
|
|
16
|
+
|
|
17
|
+
expect(exception.isFromNextTick()).toBeTruthy();
|
|
18
|
+
resolve();
|
|
19
|
+
});
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@Test()
|
|
24
|
+
public async isFromImmediateTest(): Promise<void> {
|
|
25
|
+
return new Promise<void>(resolve => {
|
|
26
|
+
setImmediate(() => {
|
|
27
|
+
const exception = new TestException('Test message');
|
|
28
|
+
|
|
29
|
+
expect(exception.isFromImmediate()).toBeTruthy();
|
|
30
|
+
resolve();
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@Test()
|
|
36
|
+
public async fromTimeoutTest(): Promise<void> {
|
|
37
|
+
return new Promise<void>(resolve => {
|
|
38
|
+
setTimeout(() => {
|
|
39
|
+
const exception = new TestException('Test message');
|
|
40
|
+
|
|
41
|
+
expect(exception.isFromTimer()).toBeTruthy();
|
|
42
|
+
resolve();
|
|
43
|
+
}, 0);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@Test()
|
|
48
|
+
public async fromIntervalTest(): Promise<void> {
|
|
49
|
+
let interval: NodeJS.Timeout;
|
|
50
|
+
return new Promise<void>(resolve => {
|
|
51
|
+
interval = setInterval(() => {
|
|
52
|
+
const exception = new TestException('Test message');
|
|
53
|
+
|
|
54
|
+
expect(exception.isFromTimer()).toBeTruthy();
|
|
55
|
+
clearInterval(interval);
|
|
56
|
+
resolve();
|
|
57
|
+
}, 0);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
@@ -67,90 +67,4 @@ export class SerializationTestSuite extends Suite {
|
|
|
67
67
|
|
|
68
68
|
expect(stack[0]!.startsWith(`at ${this.constructor.name}.syncStackTest`)).toBeTruthy();
|
|
69
69
|
}
|
|
70
|
-
|
|
71
|
-
@Test()
|
|
72
|
-
public async isFromNextTickTest(): Promise<void> {
|
|
73
|
-
return new Promise<void>(resolve => {
|
|
74
|
-
process.nextTick(() => {
|
|
75
|
-
const exception = new TestException('Test message');
|
|
76
|
-
|
|
77
|
-
expect(exception.isFromNextTick()).toBeTruthy();
|
|
78
|
-
resolve();
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
@Test()
|
|
84
|
-
public async isFromImmediateTest(): Promise<void> {
|
|
85
|
-
return new Promise<void>(resolve => {
|
|
86
|
-
setImmediate(() => {
|
|
87
|
-
const exception = new TestException('Test message');
|
|
88
|
-
|
|
89
|
-
expect(exception.isFromImmediate()).toBeTruthy();
|
|
90
|
-
resolve();
|
|
91
|
-
});
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
@Test()
|
|
96
|
-
public async fromTimeoutTest(): Promise<void> {
|
|
97
|
-
return new Promise<void>(resolve => {
|
|
98
|
-
setTimeout(() => {
|
|
99
|
-
const exception = new TestException('Test message');
|
|
100
|
-
|
|
101
|
-
expect(exception.isFromTimer()).toBeTruthy();
|
|
102
|
-
resolve();
|
|
103
|
-
}, 0);
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
@Test()
|
|
108
|
-
public async fromIntervalTest(): Promise<void> {
|
|
109
|
-
let interval: NodeJS.Timeout;
|
|
110
|
-
return new Promise<void>(resolve => {
|
|
111
|
-
interval = setInterval(() => {
|
|
112
|
-
const exception = new TestException('Test message');
|
|
113
|
-
|
|
114
|
-
expect(exception.isFromTimer()).toBeTruthy();
|
|
115
|
-
clearInterval(interval);
|
|
116
|
-
resolve();
|
|
117
|
-
}, 0);
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
@Test()
|
|
122
|
-
public async shouldWorkWithoutCaptureStackTrace(): Promise<void> {
|
|
123
|
-
// eslint-disable-next-line @typescript/unbound-method
|
|
124
|
-
const originalCaptureStackTrace = Error.captureStackTrace;
|
|
125
|
-
|
|
126
|
-
try {
|
|
127
|
-
// eslint-disable-next-line no-undefined
|
|
128
|
-
Reflect.set(Error, 'captureStackTrace', undefined);
|
|
129
|
-
|
|
130
|
-
const exception = new TestException('Browser compatible message');
|
|
131
|
-
|
|
132
|
-
expect(exception.message).toEqual('Browser compatible message');
|
|
133
|
-
expect(exception.toJSON().stack).toBeInstanceOf(Array);
|
|
134
|
-
expect(exception.toJSON().stack).not.toEqual([]);
|
|
135
|
-
} finally {
|
|
136
|
-
Reflect.set(Error, 'captureStackTrace', originalCaptureStackTrace);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
@Test()
|
|
141
|
-
public async shouldSplitStackWithLfSeparator(): Promise<void> {
|
|
142
|
-
const stack = [
|
|
143
|
-
'TestException: Test message',
|
|
144
|
-
'at new TestException (/test/exception.ts:1:1)',
|
|
145
|
-
'at browserHandler (/test/browser.ts:2:2)',
|
|
146
|
-
].join('\n');
|
|
147
|
-
|
|
148
|
-
const exception = BaseException.fromError({
|
|
149
|
-
message: 'Test message',
|
|
150
|
-
name: 'Error',
|
|
151
|
-
stack,
|
|
152
|
-
} as Error);
|
|
153
|
-
|
|
154
|
-
expect(exception.toJSON().stack).toContain('at browserHandler (/test/browser.ts:2:2)');
|
|
155
|
-
}
|
|
156
70
|
}
|