@nocobase/test 0.12.0-alpha.4 → 0.13.0-alpha.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/lib/index.d.ts +13 -0
- package/lib/index.js +98 -2
- package/lib/mockServer.d.ts +1 -0
- package/lib/mockServer.js +15 -4
- package/package.json +5 -4
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
/// <reference types="jest" />
|
|
2
|
+
import ws from 'ws';
|
|
2
3
|
export { mockDatabase } from '@nocobase/database';
|
|
3
4
|
export * from './mockServer';
|
|
5
|
+
export { default as supertest } from 'supertest';
|
|
4
6
|
export declare const pgOnly: () => jest.Describe;
|
|
5
7
|
export declare function randomStr(): string;
|
|
8
|
+
export declare const waitSecond: () => Promise<void>;
|
|
9
|
+
export declare const startServerWithRandomPort: (startServer: any) => Promise<unknown>;
|
|
10
|
+
export declare const createWsClient: ({ serverPort, options }: {
|
|
11
|
+
serverPort: any;
|
|
12
|
+
options?: {};
|
|
13
|
+
}) => Promise<{
|
|
14
|
+
wsc: ws;
|
|
15
|
+
messages: any[];
|
|
16
|
+
stop(): Promise<void>;
|
|
17
|
+
lastMessage(): any;
|
|
18
|
+
}>;
|
package/lib/index.js
CHANGED
|
@@ -6,8 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
var _exportNames = {
|
|
7
7
|
pgOnly: true,
|
|
8
8
|
randomStr: true,
|
|
9
|
-
|
|
9
|
+
waitSecond: true,
|
|
10
|
+
startServerWithRandomPort: true,
|
|
11
|
+
createWsClient: true,
|
|
12
|
+
mockDatabase: true,
|
|
13
|
+
supertest: true
|
|
10
14
|
};
|
|
15
|
+
exports.createWsClient = void 0;
|
|
11
16
|
Object.defineProperty(exports, "mockDatabase", {
|
|
12
17
|
enumerable: true,
|
|
13
18
|
get: function get() {
|
|
@@ -16,6 +21,21 @@ Object.defineProperty(exports, "mockDatabase", {
|
|
|
16
21
|
});
|
|
17
22
|
exports.pgOnly = void 0;
|
|
18
23
|
exports.randomStr = randomStr;
|
|
24
|
+
exports.startServerWithRandomPort = void 0;
|
|
25
|
+
Object.defineProperty(exports, "supertest", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function get() {
|
|
28
|
+
return _supertest().default;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
exports.waitSecond = void 0;
|
|
32
|
+
function _ws() {
|
|
33
|
+
const data = _interopRequireDefault(require("ws"));
|
|
34
|
+
_ws = function _ws() {
|
|
35
|
+
return data;
|
|
36
|
+
};
|
|
37
|
+
return data;
|
|
38
|
+
}
|
|
19
39
|
function _database() {
|
|
20
40
|
const data = require("@nocobase/database");
|
|
21
41
|
_database = function _database() {
|
|
@@ -35,9 +55,85 @@ Object.keys(_mockServer).forEach(function (key) {
|
|
|
35
55
|
}
|
|
36
56
|
});
|
|
37
57
|
});
|
|
58
|
+
function _supertest() {
|
|
59
|
+
const data = _interopRequireDefault(require("supertest"));
|
|
60
|
+
_supertest = function _supertest() {
|
|
61
|
+
return data;
|
|
62
|
+
};
|
|
63
|
+
return data;
|
|
64
|
+
}
|
|
65
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
66
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
67
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
38
68
|
const pgOnly = () => process.env.DB_DIALECT == 'postgres' ? describe : describe.skip;
|
|
39
69
|
exports.pgOnly = pgOnly;
|
|
40
70
|
function randomStr() {
|
|
41
71
|
// create random string
|
|
42
72
|
return Math.random().toString(36).substring(2);
|
|
43
|
-
}
|
|
73
|
+
}
|
|
74
|
+
const waitSecond = /*#__PURE__*/function () {
|
|
75
|
+
var _ref = _asyncToGenerator(function* () {
|
|
76
|
+
yield new Promise(resolve => setTimeout(resolve, 1000));
|
|
77
|
+
});
|
|
78
|
+
return function waitSecond() {
|
|
79
|
+
return _ref.apply(this, arguments);
|
|
80
|
+
};
|
|
81
|
+
}();
|
|
82
|
+
exports.waitSecond = waitSecond;
|
|
83
|
+
const startServerWithRandomPort = /*#__PURE__*/function () {
|
|
84
|
+
var _ref2 = _asyncToGenerator(function* (startServer) {
|
|
85
|
+
return yield new Promise(resolve => {
|
|
86
|
+
startServer({
|
|
87
|
+
port: 0,
|
|
88
|
+
host: 'localhost',
|
|
89
|
+
callback(server) {
|
|
90
|
+
// @ts-ignore
|
|
91
|
+
const port = server.address().port;
|
|
92
|
+
resolve(port);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
return function startServerWithRandomPort(_x) {
|
|
98
|
+
return _ref2.apply(this, arguments);
|
|
99
|
+
};
|
|
100
|
+
}();
|
|
101
|
+
exports.startServerWithRandomPort = startServerWithRandomPort;
|
|
102
|
+
const createWsClient = /*#__PURE__*/function () {
|
|
103
|
+
var _ref3 = _asyncToGenerator(function* ({
|
|
104
|
+
serverPort,
|
|
105
|
+
options = {}
|
|
106
|
+
}) {
|
|
107
|
+
console.log(`connect to ws://localhost:${serverPort}/ws`, options);
|
|
108
|
+
const wsc = new (_ws().default)(`ws://localhost:${serverPort}/ws`, options);
|
|
109
|
+
const messages = [];
|
|
110
|
+
wsc.on('message', data => {
|
|
111
|
+
const message = data.toString();
|
|
112
|
+
messages.push(message);
|
|
113
|
+
});
|
|
114
|
+
// await connection established
|
|
115
|
+
yield new Promise(resolve => {
|
|
116
|
+
wsc.on('open', resolve);
|
|
117
|
+
});
|
|
118
|
+
return {
|
|
119
|
+
wsc,
|
|
120
|
+
messages,
|
|
121
|
+
stop() {
|
|
122
|
+
return _asyncToGenerator(function* () {
|
|
123
|
+
const promise = new Promise(resolve => {
|
|
124
|
+
wsc.on('close', resolve);
|
|
125
|
+
});
|
|
126
|
+
wsc.close();
|
|
127
|
+
yield promise;
|
|
128
|
+
})();
|
|
129
|
+
},
|
|
130
|
+
lastMessage() {
|
|
131
|
+
return JSON.parse(messages[messages.length - 1]);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
});
|
|
135
|
+
return function createWsClient(_x2) {
|
|
136
|
+
return _ref3.apply(this, arguments);
|
|
137
|
+
};
|
|
138
|
+
}();
|
|
139
|
+
exports.createWsClient = createWsClient;
|
package/lib/mockServer.d.ts
CHANGED
|
@@ -51,6 +51,7 @@ interface Resource {
|
|
|
51
51
|
export declare class MockServer extends Application {
|
|
52
52
|
loadAndInstall(options?: any): Promise<void>;
|
|
53
53
|
cleanDb(): Promise<void>;
|
|
54
|
+
destroy(options?: any): Promise<void>;
|
|
54
55
|
agent(): SuperAgentTest & {
|
|
55
56
|
login: (user: any) => SuperAgentTest;
|
|
56
57
|
loginUsingId: (userId: number) => SuperAgentTest;
|
package/lib/mockServer.js
CHANGED
|
@@ -42,7 +42,7 @@ function _supertest() {
|
|
|
42
42
|
};
|
|
43
43
|
return data;
|
|
44
44
|
}
|
|
45
|
-
const _excluded = ["
|
|
45
|
+
const _excluded = ["values", "file"];
|
|
46
46
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
47
47
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
48
48
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -83,8 +83,17 @@ class MockServer extends _server().default {
|
|
|
83
83
|
});
|
|
84
84
|
})();
|
|
85
85
|
}
|
|
86
|
+
destroy(options = {}) {
|
|
87
|
+
var _superprop_getDestroy = () => super.destroy,
|
|
88
|
+
_this3 = this;
|
|
89
|
+
return _asyncToGenerator(function* () {
|
|
90
|
+
yield _superprop_getDestroy().call(_this3, options);
|
|
91
|
+
_server().Gateway.getInstance().destroy();
|
|
92
|
+
yield _server().AppSupervisor.getInstance().destroy();
|
|
93
|
+
})();
|
|
94
|
+
}
|
|
86
95
|
agent() {
|
|
87
|
-
const agent = _supertest().default.agent(this.
|
|
96
|
+
const agent = _supertest().default.agent(this.callback());
|
|
88
97
|
const prefix = this.resourcer.options.prefix;
|
|
89
98
|
const proxy = new Proxy(agent, {
|
|
90
99
|
get(target, method, receiver) {
|
|
@@ -105,8 +114,8 @@ class MockServer extends _server().default {
|
|
|
105
114
|
const proxy = new Proxy({}, {
|
|
106
115
|
get(target, method, receiver) {
|
|
107
116
|
return (params = {}) => {
|
|
108
|
-
let filterByTk = params.filterByTk
|
|
109
|
-
|
|
117
|
+
let filterByTk = params.filterByTk;
|
|
118
|
+
const _params$values = params.values,
|
|
110
119
|
values = _params$values === void 0 ? {} : _params$values,
|
|
111
120
|
file = params.file,
|
|
112
121
|
restParams = _objectWithoutProperties(params, _excluded);
|
|
@@ -160,6 +169,8 @@ function mockServer(options = {}) {
|
|
|
160
169
|
if (typeof TextDecoder === 'undefined') {
|
|
161
170
|
global.TextDecoder = require('util').TextDecoder;
|
|
162
171
|
}
|
|
172
|
+
_server().Gateway.getInstance().reset();
|
|
173
|
+
_server().AppSupervisor.getInstance().reset();
|
|
163
174
|
// @ts-ignore
|
|
164
175
|
if (!_server().PluginManager.findPackagePatched) {
|
|
165
176
|
_server().PluginManager.getPackageJson = () => {
|
package/package.json
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/test",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0-alpha.1",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"types": "./lib/index.d.ts",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@nocobase/server": "0.
|
|
8
|
+
"@nocobase/server": "0.13.0-alpha.1",
|
|
9
9
|
"@types/supertest": "^2.0.11",
|
|
10
10
|
"mockjs": "^1.1.0",
|
|
11
11
|
"mysql2": "^2.3.3",
|
|
12
12
|
"pg": "^8.7.3",
|
|
13
13
|
"pg-hstore": "^2.3.4",
|
|
14
14
|
"sqlite3": "^5.0.8",
|
|
15
|
-
"supertest": "^6.1.6"
|
|
15
|
+
"supertest": "^6.1.6",
|
|
16
|
+
"ws": "^8.13.0"
|
|
16
17
|
},
|
|
17
|
-
"gitHead": "
|
|
18
|
+
"gitHead": "0ebd4e85a1b0b0d0943768ab6cb5c3d824562239"
|
|
18
19
|
}
|