@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 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
- mockDatabase: true
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;
@@ -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 = ["filterByTk", "values", "file"];
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.appManager.callback());
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
- _params$values = params.values,
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.12.0-alpha.4",
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.12.0-alpha.4",
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": "215dc3b2437c501ca903b56cc378ab5e81c8a11c"
18
+ "gitHead": "0ebd4e85a1b0b0d0943768ab6cb5c3d824562239"
18
19
  }