@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.
@@ -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,
@@ -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,CAAC;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"]}
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"]}
@@ -12,16 +12,16 @@ interface ActionParams {
12
12
  perPage?: number;
13
13
  values?: any;
14
14
  resourceName?: string;
15
- resourceKey?: string;
15
+ resourceIndex?: string;
16
16
  associatedName?: string;
17
- associatedKey?: string;
17
+ associatedIndex?: string;
18
18
  [key: string]: any;
19
19
  }
20
20
  interface SortActionParams {
21
21
  resourceName?: string;
22
- resourceKey?: any;
22
+ resourceIndex?: any;
23
23
  associatedName?: string;
24
- associatedKey?: any;
24
+ associatedIndex?: any;
25
25
  sourceId?: any;
26
26
  targetId?: any;
27
27
  sortField?: string;
@@ -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,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,UAAU,gBAAgB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,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 resourceKey?: string;\n associatedName?: string;\n associatedKey?: string;\n [key: string]: any;\n}\n\ninterface SortActionParams {\n resourceName?: string;\n resourceKey?: any;\n associatedName?: string;\n associatedKey?: 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({}, {\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 associatedKey,\n resourceKey,\n values = {},\n file,\n ...restParams\n } = params;\n let url = prefix;\n if (keys.length > 1) {\n url = `/${keys[0]}/${associatedKey}/${keys[1]}`\n } else {\n url = `/${name}`;\n }\n url += `:${method as string}`;\n if (resourceKey) {\n url += `/${resourceKey}`;\n }\n console.log('request url: ' + url);\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"]}
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 associatedKey = params.associatedKey,
58
- resourceKey = params.resourceKey,
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, ["associatedKey", "resourceKey", "values", "file"]);
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]}/${associatedKey}/${keys[1]}`;
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 (resourceKey) {
75
- url += `/${resourceKey}`;
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
 
@@ -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,EAAE,EAAE;YAC1B,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,aAAa,EACb,WAAW,EACX,MAAM,GAAG,EAAE,EACX,IAAI,KAEF,MAAM,EADL,UAAU,UACX,MAAM,EANJ,kDAML,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,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;qCAChD;yCAAM;wCACL,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;qCAClB;oCACD,GAAG,IAAI,IAAI,MAAgB,EAAE,CAAC;oCAC9B,IAAI,WAAW,EAAE;wCACf,GAAG,IAAI,IAAI,WAAW,EAAE,CAAC;qCAC1B;oCACD,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC;oCACnC,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,wBAAS,CAAC,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 resourceKey?: string;\n associatedName?: string;\n associatedKey?: string;\n [key: string]: any;\n}\n\ninterface SortActionParams {\n resourceName?: string;\n resourceKey?: any;\n associatedName?: string;\n associatedKey?: 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({}, {\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 associatedKey,\n resourceKey,\n values = {},\n file,\n ...restParams\n } = params;\n let url = prefix;\n if (keys.length > 1) {\n url = `/${keys[0]}/${associatedKey}/${keys[1]}`\n } else {\n url = `/${name}`;\n }\n url += `:${method as string}`;\n if (resourceKey) {\n url += `/${resourceKey}`;\n }\n console.log('request url: ' + url);\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"]}
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.31",
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.31",
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": "7a35638eda3a59aa31132d6845fed96738f71b38"
17
+ "gitHead": "2b81a6af327ee784a6943aff6e028fde3298dec9"
18
18
  }