@nocobase/test 0.5.0-alpha.31 → 0.5.0-alpha.35
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/mockDatabase.js +1 -1
- package/lib/mockDatabase.js.map +1 -1
- package/lib/mockServer.d.ts +4 -4
- package/lib/mockServer.d.ts.map +1 -1
- package/lib/mockServer.js +8 -10
- package/lib/mockServer.js.map +1 -1
- package/package.json +3 -3
package/lib/mockDatabase.js
CHANGED
|
@@ -36,7 +36,7 @@ function generatePrefixByPath() {
|
|
|
36
36
|
exports.generatePrefixByPath = generatePrefixByPath;
|
|
37
37
|
|
|
38
38
|
function getConfig(config = {}, options) {
|
|
39
|
-
return deepmerge_1.default({
|
|
39
|
+
return (0, deepmerge_1.default)({
|
|
40
40
|
username: process.env.DB_USER,
|
|
41
41
|
password: process.env.DB_PASSWORD,
|
|
42
42
|
database: process.env.DB_DATABASE,
|
package/lib/mockDatabase.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["mockDatabase.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA8B;AAC9B,kEAA+D;AAE/D,SAAgB,oBAAoB;IAClC,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5B,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC;SAC1C,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,OAAO,GAAG,CAAA;AACZ,CAAC;AATD,oDASC;AAED,SAAgB,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,OAAa;IAClD,OAAO,mBAAK,
|
|
1
|
+
{"version":3,"sources":["mockDatabase.ts"],"names":[],"mappings":";;;;;;AAAA,0DAA8B;AAC9B,kEAA+D;AAE/D,SAAgB,oBAAoB;IAClC,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5B,MAAM,GAAG,GAAG,EAAE;SACX,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,WAAW,EAAE,EAAE,CAAC;SAC1C,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,OAAO,GAAG,CAAA;AACZ,CAAC;AATD,oDASC;AAED,SAAgB,SAAS,CAAC,MAAM,GAAG,EAAE,EAAE,OAAa;IAClD,OAAO,IAAA,mBAAK,EAAC;QACX,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;QAC7B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;QACjC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;QACjC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;QACzB,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;QACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU;QAC/B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI;QACxC,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI;YACX,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI;aACX;SACF;QACD,KAAK,EAAE;YACL,YAAY,CAAC,KAAK,EAAE,OAAO;gBACzB,OAAO,CAAC,SAAS,GAAG,GAAG,oBAAoB,EAAE,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9F,CAAC;SACF;KACF,EAAE,MAAM,IAAI,EAAE,EAAE,OAAO,CAAQ,CAAC;AACnC,CAAC;AArBD,8BAqBC;AAAA,CAAC;AAEF,SAAgB,YAAY,CAAC,OAAyB;IACpD,OAAO,IAAI,kBAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1C,CAAC;AAFD,oCAEC","file":"mockDatabase.js","sourcesContent":["import merge from 'deepmerge';\nimport Database, { DatabaseOptions } from '@nocobase/database';\n\nexport function generatePrefixByPath() {\n const { id } = require.main;\n const key = id\n .replace(`${process.env.PWD}/packages`, '')\n .replace(/src\\/__tests__/g, '')\n .replace('.test.ts', '')\n .replace(/[^\\w]/g, '_')\n .replace(/_+/g, '_');\n return key\n}\n\nexport function getConfig(config = {}, options?: any): DatabaseOptions {\n return merge({\n username: process.env.DB_USER,\n password: process.env.DB_PASSWORD,\n database: process.env.DB_DATABASE,\n host: process.env.DB_HOST,\n port: process.env.DB_PORT,\n dialect: process.env.DB_DIALECT,\n logging: process.env.DB_LOG_SQL === 'on',\n sync: {\n force: true,\n alter: {\n drop: true,\n },\n },\n hooks: {\n beforeDefine(model, options) {\n options.tableName = `${generatePrefixByPath()}_${options.tableName || options.name.plural}`;\n },\n },\n }, config || {}, options) as any;\n};\n\nexport function mockDatabase(options?: DatabaseOptions): Database {\n return new Database(getConfig(options));\n}\n"]}
|
package/lib/mockServer.d.ts
CHANGED
|
@@ -12,16 +12,16 @@ interface ActionParams {
|
|
|
12
12
|
perPage?: number;
|
|
13
13
|
values?: any;
|
|
14
14
|
resourceName?: string;
|
|
15
|
-
|
|
15
|
+
resourceIndex?: string;
|
|
16
16
|
associatedName?: string;
|
|
17
|
-
|
|
17
|
+
associatedIndex?: string;
|
|
18
18
|
[key: string]: any;
|
|
19
19
|
}
|
|
20
20
|
interface SortActionParams {
|
|
21
21
|
resourceName?: string;
|
|
22
|
-
|
|
22
|
+
resourceIndex?: any;
|
|
23
23
|
associatedName?: string;
|
|
24
|
-
|
|
24
|
+
associatedIndex?: any;
|
|
25
25
|
sourceId?: any;
|
|
26
26
|
targetId?: any;
|
|
27
27
|
sortField?: string;
|
package/lib/mockServer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["mockServer.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,WAAW,EAAE,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGnE,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,
|
|
1
|
+
{"version":3,"sources":["mockServer.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,EAAE,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,OAAO,WAAW,EAAE,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGnE,UAAU,YAAY;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG;QAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,QAAQ,CAAC,EAAE,GAAG,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,UAAU,QAAQ;IAChB,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC/D,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAChE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACjE,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,KAAK,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;CACxE;AAED,qBAAa,UAAW,SAAQ,WAAW;IACzC,KAAK,IAAI,cAAc,GAAG;QAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,QAAQ,CAAA;KAAE;CAwDnE;AAED,wBAAgB,UAAU,CAAC,OAAO,CAAC,EAAE,kBAAkB,cAKtD;AAED,eAAe,UAAU,CAAC","file":"mockServer.d.ts","sourcesContent":["import qs from 'qs';\nimport supertest, { SuperAgentTest } from 'supertest';\nimport Application, { ApplicationOptions } from '@nocobase/server';\nimport { getConfig } from './mockDatabase';\n\ninterface ActionParams {\n fields?: string[] | {\n only?: string[];\n except?: string[];\n appends?: string[];\n };\n filter?: any;\n sort?: string[];\n page?: number;\n perPage?: number;\n values?: any;\n resourceName?: string;\n resourceIndex?: string;\n associatedName?: string;\n associatedIndex?: string;\n [key: string]: any;\n}\n\ninterface SortActionParams {\n resourceName?: string;\n resourceIndex?: any;\n associatedName?: string;\n associatedIndex?: any;\n sourceId?: any;\n targetId?: any;\n sortField?: string;\n method?: string;\n target?: any;\n sticky?: boolean;\n [key: string]: any;\n}\n\ninterface Resource {\n get: (params?: ActionParams) => Promise<supertest.Response>;\n list: (params?: ActionParams) => Promise<supertest.Response>;\n create: (params?: ActionParams) => Promise<supertest.Response>;\n update: (params?: ActionParams) => Promise<supertest.Response>;\n destroy: (params?: ActionParams) => Promise<supertest.Response>;\n sort: (params?: SortActionParams) => Promise<supertest.Response>;\n [name: string]: (params?: ActionParams) => Promise<supertest.Response>;\n}\n\nexport class MockServer extends Application {\n agent(): SuperAgentTest & { resource: (name: string) => Resource } {\n const agent = supertest.agent(this.callback());\n const prefix = this.resourcer.options.prefix;\n const proxy = new Proxy(agent, {\n get(target, method: string, receiver) {\n if (method === 'resource') {\n return (name: string) => {\n const keys = name.split('.');\n const proxy = new Proxy({}, {\n get(target, method: string, receiver) {\n return (params: ActionParams = {}) => {\n const {\n associatedIndex,\n resourceIndex,\n values = {},\n file,\n ...restParams\n } = params;\n let url = prefix;\n if (keys.length > 1) {\n url = `/${keys[0]}/${associatedIndex}/${keys[1]}`\n } else {\n url = `/${name}`;\n }\n url += `:${method as string}`;\n if (resourceIndex) {\n url += `/${resourceIndex}`;\n }\n\n switch (method) {\n case 'upload':\n return agent\n .post(`${url}?${qs.stringify(restParams)}`)\n .attach('file', file)\n .field(values);\n case 'list':\n case 'get':\n return agent.get(`${url}?${qs.stringify(restParams)}`);\n default:\n return agent\n .post(`${url}?${qs.stringify(restParams)}`)\n .send(values);\n }\n };\n },\n });\n return proxy;\n }\n }\n return (...args: any[]) => {\n return agent[method](...args);\n };\n }\n });\n return proxy as any;\n }\n}\n\nexport function mockServer(options?: ApplicationOptions) {\n return new MockServer({\n ...options,\n database: getConfig(options?.database),\n });\n}\n\nexport default mockServer;\n"]}
|
package/lib/mockServer.js
CHANGED
|
@@ -46,7 +46,7 @@ class MockServer extends server_1.default {
|
|
|
46
46
|
agent() {
|
|
47
47
|
const agent = supertest_1.default.agent(this.callback());
|
|
48
48
|
const prefix = this.resourcer.options.prefix;
|
|
49
|
-
const proxy = new Proxy(
|
|
49
|
+
const proxy = new Proxy(agent, {
|
|
50
50
|
get(target, method, receiver) {
|
|
51
51
|
if (method === 'resource') {
|
|
52
52
|
return name => {
|
|
@@ -54,29 +54,27 @@ class MockServer extends server_1.default {
|
|
|
54
54
|
const proxy = new Proxy({}, {
|
|
55
55
|
get(target, method, receiver) {
|
|
56
56
|
return (params = {}) => {
|
|
57
|
-
const
|
|
58
|
-
|
|
57
|
+
const associatedIndex = params.associatedIndex,
|
|
58
|
+
resourceIndex = params.resourceIndex,
|
|
59
59
|
_params$values = params.values,
|
|
60
60
|
values = _params$values === void 0 ? {} : _params$values,
|
|
61
61
|
file = params.file,
|
|
62
|
-
restParams = __rest(params, ["
|
|
62
|
+
restParams = __rest(params, ["associatedIndex", "resourceIndex", "values", "file"]);
|
|
63
63
|
|
|
64
64
|
let url = prefix;
|
|
65
65
|
|
|
66
66
|
if (keys.length > 1) {
|
|
67
|
-
url = `/${keys[0]}/${
|
|
67
|
+
url = `/${keys[0]}/${associatedIndex}/${keys[1]}`;
|
|
68
68
|
} else {
|
|
69
69
|
url = `/${name}`;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
url += `:${method}`;
|
|
73
73
|
|
|
74
|
-
if (
|
|
75
|
-
url += `/${
|
|
74
|
+
if (resourceIndex) {
|
|
75
|
+
url += `/${resourceIndex}`;
|
|
76
76
|
}
|
|
77
77
|
|
|
78
|
-
console.log('request url: ' + url);
|
|
79
|
-
|
|
80
78
|
switch (method) {
|
|
81
79
|
case 'upload':
|
|
82
80
|
return agent.post(`${url}?${qs_1.default.stringify(restParams)}`).attach('file', file).field(values);
|
|
@@ -111,7 +109,7 @@ exports.MockServer = MockServer;
|
|
|
111
109
|
|
|
112
110
|
function mockServer(options) {
|
|
113
111
|
return new MockServer(Object.assign(Object.assign({}, options), {
|
|
114
|
-
database: mockDatabase_1.getConfig(options === null || options === void 0 ? void 0 : options.database)
|
|
112
|
+
database: (0, mockDatabase_1.getConfig)(options === null || options === void 0 ? void 0 : options.database)
|
|
115
113
|
}));
|
|
116
114
|
}
|
|
117
115
|
|
package/lib/mockServer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["mockServer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,0DAAsD;AACtD,8DAAmE;AACnE,iDAA2C;AA4C3C,MAAa,UAAW,SAAQ,gBAAW;IACzC,KAAK;QACH,MAAM,KAAK,GAAG,mBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"sources":["mockServer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAoB;AACpB,0DAAsD;AACtD,8DAAmE;AACnE,iDAA2C;AA4C3C,MAAa,UAAW,SAAQ,gBAAW;IACzC,KAAK;QACH,MAAM,KAAK,GAAG,mBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC;QAC7C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE;YAC7B,GAAG,CAAC,MAAM,EAAE,MAAc,EAAE,QAAQ;gBAClC,IAAI,MAAM,KAAK,UAAU,EAAE;oBACzB,OAAO,CAAC,IAAY,EAAE,EAAE;wBACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAC7B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,EAAE,EAAE;4BAC1B,GAAG,CAAC,MAAM,EAAE,MAAc,EAAE,QAAQ;gCAClC,OAAO,CAAC,SAAuB,EAAE,EAAE,EAAE;oCACnC,MAAM,EACJ,eAAe,EACf,aAAa,EACb,MAAM,GAAG,EAAE,EACX,IAAI,KAEF,MAAM,EADL,UAAU,UACX,MAAM,EANJ,sDAML,CAAS,CAAC;oCACX,IAAI,GAAG,GAAG,MAAM,CAAC;oCACjB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;wCACnB,GAAG,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;qCAClD;yCAAM;wCACL,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;qCAClB;oCACD,GAAG,IAAI,IAAI,MAAgB,EAAE,CAAC;oCAC9B,IAAI,aAAa,EAAE;wCACjB,GAAG,IAAI,IAAI,aAAa,EAAE,CAAC;qCAC5B;oCAED,QAAQ,MAAM,EAAE;wCACd,KAAK,QAAQ;4CACX,OAAO,KAAK;iDACT,IAAI,CAAC,GAAG,GAAG,IAAI,YAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;iDAC1C,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC;iDACpB,KAAK,CAAC,MAAM,CAAC,CAAC;wCACnB,KAAK,MAAM,CAAC;wCACZ,KAAK,KAAK;4CACR,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,YAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wCACzD;4CACE,OAAO,KAAK;iDACT,IAAI,CAAC,GAAG,GAAG,IAAI,YAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;iDAC1C,IAAI,CAAC,MAAM,CAAC,CAAC;qCACnB;gCACH,CAAC,CAAC;4BACJ,CAAC;yBACF,CAAC,CAAC;wBACH,OAAO,KAAK,CAAC;oBACf,CAAC,CAAA;iBACF;gBACD,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;oBACxB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAChC,CAAC,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QACH,OAAO,KAAY,CAAC;IACtB,CAAC;CACF;AAzDD,gCAyDC;AAED,SAAgB,UAAU,CAAC,OAA4B;IACrD,OAAO,IAAI,UAAU,iCAChB,OAAO,KACV,QAAQ,EAAE,IAAA,wBAAS,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC,IACtC,CAAC;AACL,CAAC;AALD,gCAKC;AAED,kBAAe,UAAU,CAAC","file":"mockServer.js","sourcesContent":["import qs from 'qs';\nimport supertest, { SuperAgentTest } from 'supertest';\nimport Application, { ApplicationOptions } from '@nocobase/server';\nimport { getConfig } from './mockDatabase';\n\ninterface ActionParams {\n fields?: string[] | {\n only?: string[];\n except?: string[];\n appends?: string[];\n };\n filter?: any;\n sort?: string[];\n page?: number;\n perPage?: number;\n values?: any;\n resourceName?: string;\n resourceIndex?: string;\n associatedName?: string;\n associatedIndex?: string;\n [key: string]: any;\n}\n\ninterface SortActionParams {\n resourceName?: string;\n resourceIndex?: any;\n associatedName?: string;\n associatedIndex?: any;\n sourceId?: any;\n targetId?: any;\n sortField?: string;\n method?: string;\n target?: any;\n sticky?: boolean;\n [key: string]: any;\n}\n\ninterface Resource {\n get: (params?: ActionParams) => Promise<supertest.Response>;\n list: (params?: ActionParams) => Promise<supertest.Response>;\n create: (params?: ActionParams) => Promise<supertest.Response>;\n update: (params?: ActionParams) => Promise<supertest.Response>;\n destroy: (params?: ActionParams) => Promise<supertest.Response>;\n sort: (params?: SortActionParams) => Promise<supertest.Response>;\n [name: string]: (params?: ActionParams) => Promise<supertest.Response>;\n}\n\nexport class MockServer extends Application {\n agent(): SuperAgentTest & { resource: (name: string) => Resource } {\n const agent = supertest.agent(this.callback());\n const prefix = this.resourcer.options.prefix;\n const proxy = new Proxy(agent, {\n get(target, method: string, receiver) {\n if (method === 'resource') {\n return (name: string) => {\n const keys = name.split('.');\n const proxy = new Proxy({}, {\n get(target, method: string, receiver) {\n return (params: ActionParams = {}) => {\n const {\n associatedIndex,\n resourceIndex,\n values = {},\n file,\n ...restParams\n } = params;\n let url = prefix;\n if (keys.length > 1) {\n url = `/${keys[0]}/${associatedIndex}/${keys[1]}`\n } else {\n url = `/${name}`;\n }\n url += `:${method as string}`;\n if (resourceIndex) {\n url += `/${resourceIndex}`;\n }\n\n switch (method) {\n case 'upload':\n return agent\n .post(`${url}?${qs.stringify(restParams)}`)\n .attach('file', file)\n .field(values);\n case 'list':\n case 'get':\n return agent.get(`${url}?${qs.stringify(restParams)}`);\n default:\n return agent\n .post(`${url}?${qs.stringify(restParams)}`)\n .send(values);\n }\n };\n },\n });\n return proxy;\n }\n }\n return (...args: any[]) => {\n return agent[method](...args);\n };\n }\n });\n return proxy as any;\n }\n}\n\nexport function mockServer(options?: ApplicationOptions) {\n return new MockServer({\n ...options,\n database: getConfig(options?.database),\n });\n}\n\nexport default mockServer;\n"]}
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nocobase/test",
|
|
3
|
-
"version": "0.5.0-alpha.
|
|
3
|
+
"version": "0.5.0-alpha.35",
|
|
4
4
|
"main": "lib/index.js",
|
|
5
5
|
"types": "./lib/index.d.ts",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"scripts": {},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@nocobase/server": "^0.5.0-alpha.
|
|
9
|
+
"@nocobase/server": "^0.5.0-alpha.35",
|
|
10
10
|
"@types/supertest": "^2.0.11",
|
|
11
11
|
"mockjs": "^1.1.0",
|
|
12
12
|
"mysql2": "^2.1.0",
|
|
@@ -14,5 +14,5 @@
|
|
|
14
14
|
"pg-hstore": "^2.3.3",
|
|
15
15
|
"supertest": "^6.1.6"
|
|
16
16
|
},
|
|
17
|
-
"gitHead": "
|
|
17
|
+
"gitHead": "2b81a6af327ee784a6943aff6e028fde3298dec9"
|
|
18
18
|
}
|