exisjs 0.1.3 → 0.1.5
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/README.md +5 -2
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +1 -0
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/dev.d.ts.map +1 -1
- package/dist/cli/commands/dev.js +11 -15
- package/dist/cli/commands/dev.js.map +1 -1
- package/dist/cli/commands/generate.d.ts +3 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +39 -44
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +1 -6
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/test.d.ts +1 -0
- package/dist/cli/commands/test.d.ts.map +1 -1
- package/dist/cli/commands/test.js +8 -13
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/index.js +7 -5
- package/dist/cli/index.js.map +1 -1
- package/dist/decorators/index.d.ts +101 -0
- package/dist/decorators/index.d.ts.map +1 -1
- package/dist/decorators/index.js +153 -21
- package/dist/decorators/index.js.map +1 -1
- package/dist/di/inject.d.ts +17 -0
- package/dist/di/inject.d.ts.map +1 -1
- package/dist/di/inject.js +17 -0
- package/dist/di/inject.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/mongoose.d.ts.map +1 -1
- package/dist/integrations/mongoose.js +3 -2
- package/dist/integrations/mongoose.js.map +1 -1
- package/dist/lib/start-server.js +30 -2
- package/dist/lib/start-server.js.map +1 -1
- package/dist/middleware/middleware.d.ts +1 -1
- package/dist/middleware/middleware.d.ts.map +1 -1
- package/dist/middleware/middleware.js +4 -0
- package/dist/middleware/middleware.js.map +1 -1
- package/dist/module/module.d.ts +16 -0
- package/dist/module/module.d.ts.map +1 -1
- package/dist/module/module.js +16 -0
- package/dist/module/module.js.map +1 -1
- package/dist/router/router.d.ts.map +1 -1
- package/dist/router/router.js +44 -22
- package/dist/router/router.js.map +1 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +217 -100
- package/dist/server/app.js.map +1 -1
- package/dist/server/cluster.d.ts.map +1 -1
- package/dist/server/cluster.js +4 -9
- package/dist/server/cluster.js.map +1 -1
- package/dist/server/define.d.ts +14 -0
- package/dist/server/define.d.ts.map +1 -1
- package/dist/server/define.js +14 -0
- package/dist/server/define.js.map +1 -1
- package/dist/server/dep-graph.d.ts.map +1 -1
- package/dist/server/dep-graph.js +13 -11
- package/dist/server/dep-graph.js.map +1 -1
- package/dist/server/request.d.ts +137 -1
- package/dist/server/request.d.ts.map +1 -1
- package/dist/server/request.js +136 -0
- package/dist/server/request.js.map +1 -1
- package/dist/server/response.d.ts +186 -0
- package/dist/server/response.d.ts.map +1 -1
- package/dist/server/response.js +188 -1
- package/dist/server/response.js.map +1 -1
- package/dist/server/route.d.ts +28 -2
- package/dist/server/route.d.ts.map +1 -1
- package/dist/server/route.js +28 -2
- package/dist/server/route.js.map +1 -1
- package/dist/server/uws-adapter.d.ts +4 -1
- package/dist/server/uws-adapter.d.ts.map +1 -1
- package/dist/server/uws-adapter.js +55 -6
- package/dist/server/uws-adapter.js.map +1 -1
- package/dist/swagger/index.d.ts.map +1 -1
- package/dist/swagger/index.js +2 -1
- package/dist/swagger/index.js.map +1 -1
- package/dist/testing/expect.d.ts +54 -0
- package/dist/testing/expect.d.ts.map +1 -0
- package/dist/testing/expect.js +419 -0
- package/dist/testing/expect.js.map +1 -0
- package/dist/testing/index.d.ts +55 -4
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +175 -22
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/reporter.d.mts +38 -0
- package/dist/testing/reporter.d.mts.map +1 -0
- package/dist/testing/reporter.mjs +225 -0
- package/dist/testing/reporter.mjs.map +1 -0
- package/dist/types.d.ts +3 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/websocket/server.d.ts.map +1 -1
- package/dist/websocket/server.js +5 -3
- package/dist/websocket/server.js.map +1 -1
- package/dist/websocket/socket.d.ts.map +1 -1
- package/dist/websocket/socket.js +8 -6
- package/dist/websocket/socket.js.map +1 -1
- package/package.json +2 -3
- package/dist/testing/reporter.d.ts +0 -13
- package/dist/testing/reporter.d.ts.map +0 -1
- package/dist/testing/reporter.js +0 -101
- package/dist/testing/reporter.js.map +0 -1
package/dist/testing/index.js
CHANGED
|
@@ -10,36 +10,188 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
10
10
|
if (k2 === undefined) k2 = k;
|
|
11
11
|
o[k2] = m[k];
|
|
12
12
|
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
13
18
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
19
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
20
|
};
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
16
38
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
40
|
};
|
|
19
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.assert = exports.mock = exports.afterEach = exports.beforeEach = exports.after = exports.before = exports.it = exports.describe = exports.test = void 0;
|
|
42
|
+
exports.expect = exports.assert = exports.ex = exports.mock = exports.afterEach = exports.beforeEach = exports.afterAll = exports.after = exports.beforeAll = exports.before = exports.it = exports.describe = exports.test = exports.TestRequest = void 0;
|
|
21
43
|
exports.createTestContext = createTestContext;
|
|
22
44
|
__exportStar(require("./mocks"), exports);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
45
|
+
var client_1 = require("./client");
|
|
46
|
+
Object.defineProperty(exports, "TestRequest", { enumerable: true, get: function () { return client_1.TestRequest; } });
|
|
47
|
+
const _nodeTest = __importStar(require("node:test"));
|
|
48
|
+
const node_assert_1 = __importDefault(require("node:assert"));
|
|
49
|
+
const node_util_1 = __importDefault(require("node:util"));
|
|
50
|
+
const client_2 = require("./client");
|
|
51
|
+
// Re-export native test runner features with top-tier TypeScript support
|
|
52
|
+
function applyEach(baseTestFn) {
|
|
53
|
+
baseTestFn.each = function (cases) {
|
|
54
|
+
return (name, fn) => {
|
|
55
|
+
for (const c of cases) {
|
|
56
|
+
const testArgs = Array.isArray(c) ? c : [c];
|
|
57
|
+
const testName = node_util_1.default.format(name, ...testArgs);
|
|
58
|
+
baseTestFn(testName, () => fn(...testArgs));
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
return baseTestFn;
|
|
63
|
+
}
|
|
64
|
+
exports.test = applyEach(_nodeTest.test);
|
|
65
|
+
exports.describe = applyEach(_nodeTest.describe);
|
|
66
|
+
exports.it = applyEach(_nodeTest.it);
|
|
67
|
+
exports.before = _nodeTest.before;
|
|
68
|
+
exports.beforeAll = _nodeTest.before;
|
|
69
|
+
exports.after = _nodeTest.after;
|
|
70
|
+
exports.afterAll = _nodeTest.after;
|
|
71
|
+
exports.beforeEach = _nodeTest.beforeEach;
|
|
72
|
+
exports.afterEach = _nodeTest.afterEach;
|
|
73
|
+
exports.mock = _nodeTest.mock;
|
|
74
|
+
function applyMockPolyfill(fn) {
|
|
75
|
+
if (!fn.mock)
|
|
76
|
+
return fn;
|
|
77
|
+
fn.mockRestore = () => fn.mock.restore();
|
|
78
|
+
fn.mockImplementation = (impl) => {
|
|
79
|
+
fn.mock.mockImplementation(impl);
|
|
80
|
+
return fn;
|
|
81
|
+
};
|
|
82
|
+
fn.mockResolvedValue = (val) => {
|
|
83
|
+
fn.mock.mockImplementation(async () => val);
|
|
84
|
+
return fn;
|
|
85
|
+
};
|
|
86
|
+
fn.mockReturnValue = (val) => {
|
|
87
|
+
fn.mock.mockImplementation(() => val);
|
|
88
|
+
return fn;
|
|
89
|
+
};
|
|
90
|
+
fn.mockRejectedValue = (err) => {
|
|
91
|
+
fn.mock.mockImplementation(async () => {
|
|
92
|
+
throw err;
|
|
93
|
+
});
|
|
94
|
+
return fn;
|
|
95
|
+
};
|
|
96
|
+
fn.mockClear = () => fn.mock.resetCalls();
|
|
97
|
+
return fn;
|
|
98
|
+
}
|
|
99
|
+
exports.ex = {
|
|
100
|
+
fn: (impl) => applyMockPolyfill(_nodeTest.mock.fn(impl)),
|
|
101
|
+
spyOn: (obj, methodName) => applyMockPolyfill(_nodeTest.mock.method(obj, methodName)),
|
|
102
|
+
timers: _nodeTest.mock.timers,
|
|
103
|
+
mock: (specifier, factory) => {
|
|
104
|
+
if (factory) {
|
|
105
|
+
const mockExports = factory();
|
|
106
|
+
const options = {};
|
|
107
|
+
if (mockExports.default) {
|
|
108
|
+
options.defaultExport = mockExports.default;
|
|
109
|
+
const { default: _, ...named } = mockExports;
|
|
110
|
+
options.namedExports = named;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
options.namedExports = mockExports;
|
|
114
|
+
}
|
|
115
|
+
_nodeTest.mock.module(specifier, options);
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
_nodeTest.mock.module(specifier);
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
setSystemTime: (time) => {
|
|
122
|
+
try {
|
|
123
|
+
_nodeTest.mock.timers.enable({
|
|
124
|
+
apis: ['Date', 'setTimeout', 'setInterval', 'setImmediate'],
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
catch {
|
|
128
|
+
/* ignore if already enabled */
|
|
129
|
+
}
|
|
130
|
+
_nodeTest.mock.timers.setTime(time.valueOf());
|
|
131
|
+
},
|
|
132
|
+
advanceTimersByTime: (ms) => {
|
|
133
|
+
try {
|
|
134
|
+
_nodeTest.mock.timers.enable({
|
|
135
|
+
apis: ['Date', 'setTimeout', 'setInterval', 'setImmediate'],
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
/* ignore */
|
|
140
|
+
}
|
|
141
|
+
_nodeTest.mock.timers.tick(ms);
|
|
142
|
+
},
|
|
143
|
+
useFakeTimers: () => {
|
|
144
|
+
try {
|
|
145
|
+
_nodeTest.mock.timers.enable({
|
|
146
|
+
apis: ['Date', 'setTimeout', 'setInterval', 'setImmediate'],
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
catch {
|
|
150
|
+
/* ignore */
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
useRealTimers: () => {
|
|
154
|
+
_nodeTest.mock.timers.reset();
|
|
155
|
+
},
|
|
156
|
+
clearAllMocks: () => _nodeTest.mock.reset(),
|
|
157
|
+
};
|
|
158
|
+
exports.assert = _nodeTest.assert || node_assert_1.default;
|
|
159
|
+
var expect_1 = require("./expect");
|
|
160
|
+
Object.defineProperty(exports, "expect", { enumerable: true, get: function () { return expect_1.expect; } });
|
|
161
|
+
const app_1 = require("../server/app");
|
|
162
|
+
function createTestContext(appInput) {
|
|
163
|
+
let app = appInput;
|
|
164
|
+
// Handle @Server decorated classes natively
|
|
165
|
+
if (app &&
|
|
166
|
+
typeof app === 'function' &&
|
|
167
|
+
app.prototype &&
|
|
168
|
+
app.prototype[Symbol.for('exisjs:server_config')]) {
|
|
169
|
+
const serverConfig = app.prototype[Symbol.for('exisjs:server_config')];
|
|
170
|
+
const instance = new app_1.App({
|
|
171
|
+
plugins: serverConfig.plugins,
|
|
172
|
+
});
|
|
173
|
+
const serverInstance = new app();
|
|
174
|
+
if (serverConfig.providers) {
|
|
175
|
+
for (const p of serverConfig.providers) {
|
|
176
|
+
instance.provide(p[0], p[1]);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
instance.onStartHook = async () => {
|
|
180
|
+
if (typeof serverInstance.onStart === 'function') {
|
|
181
|
+
await serverInstance.onStart(instance);
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
instance.onCloseHook = async () => {
|
|
185
|
+
if (typeof serverInstance.onClose === 'function') {
|
|
186
|
+
await serverInstance.onClose(instance);
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
app = instance;
|
|
190
|
+
}
|
|
39
191
|
process.on('unhandledRejection', (reason) => {
|
|
40
192
|
console.error('UNHANDLED REJECTION DETECTED:', reason);
|
|
41
193
|
});
|
|
42
|
-
(0,
|
|
194
|
+
(0, exports.before)(async () => {
|
|
43
195
|
if (typeof app.create === 'function') {
|
|
44
196
|
await app.create();
|
|
45
197
|
}
|
|
@@ -69,7 +221,7 @@ function createTestContext(app) {
|
|
|
69
221
|
// fully resolve before the test suite starts.
|
|
70
222
|
await new Promise((r) => setTimeout(r, 50));
|
|
71
223
|
});
|
|
72
|
-
(0,
|
|
224
|
+
(0, exports.after)(async () => {
|
|
73
225
|
// Attempt graceful shutdown of database connections to let event loop exit
|
|
74
226
|
console.log('Testing: executing after hook');
|
|
75
227
|
// Mongoose
|
|
@@ -79,7 +231,8 @@ function createTestContext(app) {
|
|
|
79
231
|
const requireFromCwd = createRequire(process.cwd() + '/package.json');
|
|
80
232
|
const mongoose = requireFromCwd('mongoose');
|
|
81
233
|
if (mongoose.connection && mongoose.connection.readyState !== 0) {
|
|
82
|
-
if (mongoose.connection.readyState === 2) {
|
|
234
|
+
if (mongoose.connection.readyState === 2) {
|
|
235
|
+
// 2 = connecting
|
|
83
236
|
console.log('Testing: awaiting mongoose connection');
|
|
84
237
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
85
238
|
await mongoose.connection.asPromise().catch(() => { });
|
|
@@ -115,7 +268,7 @@ function createTestContext(app) {
|
|
|
115
268
|
catch {
|
|
116
269
|
// Redis not used
|
|
117
270
|
}
|
|
118
|
-
// Call the built-in graceful shutdown which cleans up the queue,
|
|
271
|
+
// Call the built-in graceful shutdown which cleans up the queue,
|
|
119
272
|
// cron jobs, database connections, and running servers.
|
|
120
273
|
if (typeof app.close === 'function') {
|
|
121
274
|
console.log('Testing: app.close()');
|
|
@@ -123,6 +276,6 @@ function createTestContext(app) {
|
|
|
123
276
|
console.log('Testing: app.close() finished');
|
|
124
277
|
}
|
|
125
278
|
});
|
|
126
|
-
return (0,
|
|
279
|
+
return (0, client_2.createTestApp)(app);
|
|
127
280
|
}
|
|
128
281
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom Jest/Vitest-like Test Reporter for ExisJS
|
|
3
|
+
*
|
|
4
|
+
* Consumes the async iterable of TestEvent objects emitted by Node's
|
|
5
|
+
* built-in test runner (node:test) and renders Jest-style terminal output.
|
|
6
|
+
*/
|
|
7
|
+
interface TestEventDetails {
|
|
8
|
+
duration_ms?: number;
|
|
9
|
+
type?: 'suite' | 'test';
|
|
10
|
+
error?: {
|
|
11
|
+
message?: string;
|
|
12
|
+
stack?: string;
|
|
13
|
+
cause?: {
|
|
14
|
+
message?: string;
|
|
15
|
+
stack?: string;
|
|
16
|
+
};
|
|
17
|
+
expected?: unknown;
|
|
18
|
+
actual?: unknown;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface TestEventData {
|
|
22
|
+
name: string;
|
|
23
|
+
nesting: number;
|
|
24
|
+
testNumber?: number;
|
|
25
|
+
file?: string;
|
|
26
|
+
line?: number;
|
|
27
|
+
column?: number;
|
|
28
|
+
details?: TestEventDetails;
|
|
29
|
+
skip?: string | boolean;
|
|
30
|
+
todo?: string | boolean;
|
|
31
|
+
}
|
|
32
|
+
interface TestEvent {
|
|
33
|
+
type: 'test:pass' | 'test:fail' | 'test:skip' | 'test:todo' | 'test:diagnostic' | 'test:stdout' | 'test:stderr' | 'test:start';
|
|
34
|
+
data: TestEventData;
|
|
35
|
+
}
|
|
36
|
+
export default function customReporter(source: AsyncIterable<TestEvent>): AsyncGenerator<string>;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=reporter.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.d.mts","sourceRoot":"","sources":["../../src/testing/reporter.mts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,UAAU,gBAAgB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE;YAAE,OAAO,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;QAE5C,QAAQ,CAAC,EAAE,OAAO,CAAA;QAClB,MAAM,CAAC,EAAE,OAAO,CAAA;KACjB,CAAA;CACF;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,gBAAgB,CAAA;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACxB;AAED,UAAU,SAAS;IACjB,IAAI,EACA,WAAW,GACX,WAAW,GACX,WAAW,GACX,WAAW,GACX,iBAAiB,GACjB,aAAa,GACb,aAAa,GACb,YAAY,CAAA;IAChB,IAAI,EAAE,aAAa,CAAA;CACpB;AAmED,wBAA+B,cAAc,CAC3C,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,GAC/B,cAAc,CAAC,MAAM,CAAC,CAuMxB"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Custom Jest/Vitest-like Test Reporter for ExisJS
|
|
4
|
+
*
|
|
5
|
+
* Consumes the async iterable of TestEvent objects emitted by Node's
|
|
6
|
+
* built-in test runner (node:test) and renders Jest-style terminal output.
|
|
7
|
+
*/
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import { fileURLToPath } from 'node:url';
|
|
10
|
+
// ─── Colors (respects NO_COLOR / non-TTY) ──────────────────────────────────
|
|
11
|
+
const supportsColor = !process.env.NO_COLOR && (process.stdout.isTTY ?? false);
|
|
12
|
+
function paint(code) {
|
|
13
|
+
return supportsColor ? code : '';
|
|
14
|
+
}
|
|
15
|
+
const GREEN_BG = paint('\x1b[42m\x1b[30m');
|
|
16
|
+
const RED_BG = paint('\x1b[41m\x1b[30m');
|
|
17
|
+
const GREEN = paint('\x1b[32m');
|
|
18
|
+
const RED = paint('\x1b[31m');
|
|
19
|
+
const YELLOW = paint('\x1b[33m');
|
|
20
|
+
const DIM = paint('\x1b[90m');
|
|
21
|
+
const BOLD = paint('\x1b[1m');
|
|
22
|
+
const RESET = paint('\x1b[0m');
|
|
23
|
+
const CHECK = '√';
|
|
24
|
+
const CROSS = '×';
|
|
25
|
+
const SKIP = '○';
|
|
26
|
+
const TODO = '‼';
|
|
27
|
+
const SLOW_TEST_MS = 100; // tests slower than this get a yellow duration flag
|
|
28
|
+
// ─── Helpers ────────────────────────────────────────────────────────────────
|
|
29
|
+
function relFile(file) {
|
|
30
|
+
const cleaned = file.startsWith('file://') ? fileURLToPath(file) : file;
|
|
31
|
+
return path.relative(process.cwd(), cleaned).split(path.sep).join('/');
|
|
32
|
+
}
|
|
33
|
+
/** Filters a stack trace down to frames that point at user code. */
|
|
34
|
+
function cleanStack(stack) {
|
|
35
|
+
if (!stack)
|
|
36
|
+
return '';
|
|
37
|
+
return stack
|
|
38
|
+
.split('\n')
|
|
39
|
+
.filter((line) => !/node:internal|node_modules[\\/]/.test(line))
|
|
40
|
+
.slice(0, 6) // cap depth so one failure doesn't dominate the terminal
|
|
41
|
+
.join('\n');
|
|
42
|
+
}
|
|
43
|
+
function formatDuration(ms) {
|
|
44
|
+
if (ms === undefined)
|
|
45
|
+
return '';
|
|
46
|
+
const rounded = Math.round(ms);
|
|
47
|
+
const color = rounded > SLOW_TEST_MS ? YELLOW : DIM;
|
|
48
|
+
return ` ${color}(${rounded} ms)${RESET}`;
|
|
49
|
+
}
|
|
50
|
+
// ─── Reporter ───────────────────────────────────────────────────────────────
|
|
51
|
+
export default async function* customReporter(source) {
|
|
52
|
+
let passedTests = 0;
|
|
53
|
+
let failedTests = 0;
|
|
54
|
+
let skippedTests = 0;
|
|
55
|
+
let totalTests = 0;
|
|
56
|
+
let passedSuites = 0;
|
|
57
|
+
let failedSuites = 0;
|
|
58
|
+
const startTime = Date.now();
|
|
59
|
+
const failures = [];
|
|
60
|
+
const filesMap = new Map();
|
|
61
|
+
const getFileData = (file) => {
|
|
62
|
+
const absFile = path.isAbsolute(file) ? file : path.resolve(process.cwd(), file);
|
|
63
|
+
const normalized = absFile.replace(/\\/g, '/');
|
|
64
|
+
let fd = filesMap.get(normalized);
|
|
65
|
+
if (!fd) {
|
|
66
|
+
fd = {
|
|
67
|
+
output: [],
|
|
68
|
+
failed: false,
|
|
69
|
+
passedCount: 0,
|
|
70
|
+
failedCount: 0,
|
|
71
|
+
skippedCount: 0,
|
|
72
|
+
};
|
|
73
|
+
filesMap.set(normalized, fd);
|
|
74
|
+
}
|
|
75
|
+
return fd;
|
|
76
|
+
};
|
|
77
|
+
try {
|
|
78
|
+
let currentFile = '';
|
|
79
|
+
const printedFiles = new Set();
|
|
80
|
+
for await (const event of source) {
|
|
81
|
+
const { type, data } = event;
|
|
82
|
+
if (!data)
|
|
83
|
+
continue;
|
|
84
|
+
const { name, nesting, details, file, skip, todo } = data;
|
|
85
|
+
// Track the actual test file since wrapped tests report `index.ts`
|
|
86
|
+
const safeName = name || '';
|
|
87
|
+
const normalizedName = safeName.replace(/\\/g, '/');
|
|
88
|
+
const isFileSuite = (type === 'test:enqueue' || type === 'test:start') && (safeName === file || normalizedName === relFile(file || '') || (file && file.replace(/\\/g, '/').endsWith(normalizedName)));
|
|
89
|
+
if (isFileSuite) {
|
|
90
|
+
currentFile = file || safeName;
|
|
91
|
+
}
|
|
92
|
+
const activeFile = (file && file.replace(/\\/g, '/').match(/testing\/index\.[mc]?[jt]s/)) ? (currentFile || file) : (file || currentFile);
|
|
93
|
+
if (!activeFile)
|
|
94
|
+
continue;
|
|
95
|
+
const fileData = getFileData(activeFile);
|
|
96
|
+
const isSuite = details?.type === 'suite';
|
|
97
|
+
const indent = ' '.repeat(Math.max(nesting, 0));
|
|
98
|
+
// ─── File-level suite completion ─────────────────────────
|
|
99
|
+
const isTopLevelCompletion = (type === 'test:pass' || type === 'test:fail') && nesting === 0;
|
|
100
|
+
if (isTopLevelCompletion) {
|
|
101
|
+
if (!printedFiles.has(activeFile)) {
|
|
102
|
+
const relPath = relFile(activeFile);
|
|
103
|
+
const badge = fileData.failed
|
|
104
|
+
? `${RED_BG}${BOLD} FAIL ${RESET}`
|
|
105
|
+
: `${GREEN_BG}${BOLD} PASS ${RESET}`;
|
|
106
|
+
yield `\n ${badge} ${DIM}exis${RESET} ${relPath}\n`;
|
|
107
|
+
printedFiles.add(activeFile);
|
|
108
|
+
if (fileData.failed)
|
|
109
|
+
failedSuites++;
|
|
110
|
+
else
|
|
111
|
+
passedSuites++;
|
|
112
|
+
}
|
|
113
|
+
for (const line of fileData.output)
|
|
114
|
+
yield line;
|
|
115
|
+
fileData.output.length = 0; // Clear it so it doesn't print twice
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
// ─── Skipped / todo tests ─────────────────────────────────────────────
|
|
119
|
+
if (type === 'test:skip' || skip) {
|
|
120
|
+
fileData.output.push(`${indent} ${DIM}${SKIP} ${name} (skipped)${RESET}\n`);
|
|
121
|
+
skippedTests++;
|
|
122
|
+
totalTests++;
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (type === 'test:todo' || todo) {
|
|
126
|
+
fileData.output.push(`${indent} ${YELLOW}${TODO} ${name} (todo)${RESET}\n`);
|
|
127
|
+
skippedTests++;
|
|
128
|
+
totalTests++;
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
// ─── Suite headers (describe blocks) ──────────────────────────────────
|
|
132
|
+
if (isSuite) {
|
|
133
|
+
if (type === 'test:start') {
|
|
134
|
+
fileData.output.push(`${indent} ${BOLD}${name}${RESET}\n`);
|
|
135
|
+
}
|
|
136
|
+
if (type === 'test:fail') {
|
|
137
|
+
fileData.failed = true;
|
|
138
|
+
const err = details?.error;
|
|
139
|
+
if (err) {
|
|
140
|
+
const errMsg = err?.message || err?.cause?.message || 'Unknown error';
|
|
141
|
+
const stack = cleanStack(err?.stack || err?.cause?.stack);
|
|
142
|
+
fileData.output.push(`\n${indent} ${RED}${errMsg}${RESET}\n`);
|
|
143
|
+
if (stack) {
|
|
144
|
+
fileData.output.push(stack
|
|
145
|
+
.split('\n')
|
|
146
|
+
.map((l) => `${indent} ${DIM}${l}${RESET}`)
|
|
147
|
+
.join('\n') + '\n\n');
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
// ─── Console Logs (stdout/stderr) ─────────────────────────────────────
|
|
154
|
+
if (type === 'test:stdout' || type === 'test:stderr') {
|
|
155
|
+
const message = data.message?.trimEnd();
|
|
156
|
+
if (message) {
|
|
157
|
+
const logLines = message.split('\n').map((l) => `${indent} ${DIM}│${RESET} ${l}`);
|
|
158
|
+
fileData.output.push(...logLines, '\n');
|
|
159
|
+
}
|
|
160
|
+
continue;
|
|
161
|
+
}
|
|
162
|
+
// ─── Individual tests ──────────────────────────────────────────────────
|
|
163
|
+
if (type === 'test:pass') {
|
|
164
|
+
const timeStr = formatDuration(details?.duration_ms);
|
|
165
|
+
fileData.output.push(`${indent} ${GREEN}${CHECK}${RESET} ${DIM}${name}${RESET}${timeStr}\n`);
|
|
166
|
+
passedTests++;
|
|
167
|
+
totalTests++;
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
if (type === 'test:fail') {
|
|
171
|
+
const timeStr = formatDuration(details?.duration_ms);
|
|
172
|
+
fileData.output.push(`${indent} ${RED}${CROSS}${RESET} ${RED}${name}${RESET}${timeStr}\n`);
|
|
173
|
+
const err = details?.error;
|
|
174
|
+
const errMsg = err?.message || err?.cause?.message || 'Unknown error';
|
|
175
|
+
const stack = cleanStack(err?.stack || err?.cause?.stack);
|
|
176
|
+
fileData.output.push(`\n${indent} ${RED}${errMsg}${RESET}\n`);
|
|
177
|
+
if (stack) {
|
|
178
|
+
fileData.output.push(stack
|
|
179
|
+
.split('\n')
|
|
180
|
+
.map((l) => `${indent} ${DIM}${l}${RESET}`)
|
|
181
|
+
.join('\n') + '\n\n');
|
|
182
|
+
}
|
|
183
|
+
failedTests++;
|
|
184
|
+
totalTests++;
|
|
185
|
+
fileData.failed = true;
|
|
186
|
+
failures.push({
|
|
187
|
+
file: relFile(activeFile),
|
|
188
|
+
fullName: safeName,
|
|
189
|
+
errMsg,
|
|
190
|
+
stack,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
catch (reporterErr) {
|
|
196
|
+
// Never let the reporter itself crash the test run silently.
|
|
197
|
+
yield `\n${RED}${BOLD}Reporter error:${RESET} ${reporterErr.message}\n`;
|
|
198
|
+
}
|
|
199
|
+
// ─── Failure summary (Vitest/Jest style, scannable at a glance) ───────────
|
|
200
|
+
if (failures.length > 0) {
|
|
201
|
+
yield `\n${BOLD}${RED}Failed Tests ${failures.length}${RESET}\n\n`;
|
|
202
|
+
for (const f of failures) {
|
|
203
|
+
yield ` ${RED}${CROSS}${RESET} ${f.file} ${DIM}>${RESET} ${f.fullName}\n`;
|
|
204
|
+
yield ` ${DIM}${f.errMsg}${RESET}\n`;
|
|
205
|
+
}
|
|
206
|
+
yield '\n';
|
|
207
|
+
}
|
|
208
|
+
// ─── Final summary ──────────────────────────────────────────────────────
|
|
209
|
+
const duration = ((Date.now() - startTime) / 1000).toFixed(3);
|
|
210
|
+
yield `${BOLD}Test Suites:${RESET} `;
|
|
211
|
+
if (failedSuites > 0)
|
|
212
|
+
yield `${RED}${BOLD}${failedSuites} failed${RESET}, `;
|
|
213
|
+
yield `${GREEN}${BOLD}${passedSuites} passed${RESET}, ${passedSuites + failedSuites} total\n`;
|
|
214
|
+
yield `${BOLD}Tests: ${RESET} `;
|
|
215
|
+
if (failedTests > 0)
|
|
216
|
+
yield `${RED}${BOLD}${failedTests} failed${RESET}, `;
|
|
217
|
+
if (skippedTests > 0)
|
|
218
|
+
yield `${YELLOW}${skippedTests} skipped${RESET}, `;
|
|
219
|
+
yield `${GREEN}${BOLD}${passedTests} passed${RESET}, ${totalTests} total\n`;
|
|
220
|
+
yield `${BOLD}Time: ${RESET} ${duration} s\n\n`;
|
|
221
|
+
if (failedTests > 0 || failedSuites > 0) {
|
|
222
|
+
process.exitCode = 1;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=reporter.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporter.mjs","sourceRoot":"","sources":["../../src/testing/reporter.mts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -2,7 +2,8 @@ import type { ExisRequest } from './server/request';
|
|
|
2
2
|
import type { ExisResponse } from './server/response';
|
|
3
3
|
import type { ExisWebSocket } from './websocket/socket';
|
|
4
4
|
import type { ExisSSE } from './server/sse';
|
|
5
|
-
export
|
|
5
|
+
export interface Request<TBody = unknown, TQuery = Record<string, string>, TParams = Record<string, string>> extends ExisRequest<TBody, TQuery, TParams> {
|
|
6
|
+
}
|
|
6
7
|
export type Response<TResponse = any> = ExisResponse<TResponse>;
|
|
7
8
|
export interface ExisFile {
|
|
8
9
|
fieldname: string;
|
|
@@ -99,6 +100,7 @@ export interface CorsConfig {
|
|
|
99
100
|
exposedHeaders?: string[];
|
|
100
101
|
credentials?: boolean;
|
|
101
102
|
maxAge?: number;
|
|
103
|
+
preflightContinue?: boolean;
|
|
102
104
|
}
|
|
103
105
|
export interface LoggerConfig {
|
|
104
106
|
level?: 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace' | 'silent';
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/websocket/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C;;GAEG;AACH,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,KAAK,CAAwC;IAErD,OAAO,CAAC,OAAO,CAA2B;IACnC,eAAe,UAAQ;IAC9B,OAAO,CAAC,YAAY,CAA8B;;IAMlD;;;OAGG;IACH,cAAc,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/websocket/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAE7C;;GAEG;AACH,qBAAa,mBAAmB;IAE9B,OAAO,CAAC,KAAK,CAAwC;IAErD,OAAO,CAAC,OAAO,CAA2B;IACnC,eAAe,UAAQ;IAC9B,OAAO,CAAC,YAAY,CAA8B;;IAMlD;;;OAGG;IACH,cAAc,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;IAgBtB;;OAEG;IACH,KAAK,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IASlC;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAcpD;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAWtD;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,IAAI;IAkBnE;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IASzC;;;OAGG;IACH,EAAE,CAAC,IAAI,EAAE,MAAM;sBAEG,MAAM,SAAS,OAAO;;IAMxC;;;OAGG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC;IAKlD;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,EAAE;IAWxE;;OAEG;IACH,KAAK,IAAI,IAAI;CAQd"}
|
package/dist/websocket/server.js
CHANGED
|
@@ -41,9 +41,11 @@ class ExisWebSocketServer {
|
|
|
41
41
|
*/
|
|
42
42
|
track(socket) {
|
|
43
43
|
this.clients.add(socket);
|
|
44
|
-
socket.raw
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
if (socket.raw) {
|
|
45
|
+
socket.raw.once('close', () => {
|
|
46
|
+
this.clients.delete(socket);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
47
49
|
}
|
|
48
50
|
/**
|
|
49
51
|
* Subscribes a socket to a room.
|