test: add a few test cases
This commit is contained in:
parent
bf2e315c9e
commit
204a516165
@ -199,7 +199,7 @@ export class Resourcer {
|
|||||||
|
|
||||||
getAction(name: string, action: ActionName): Action {
|
getAction(name: string, action: ActionName): Action {
|
||||||
// 支持注册局部 action
|
// 支持注册局部 action
|
||||||
if (this.handlers.has(`${name}.${action}`)) {
|
if (this.handlers.has(`${name}:${action}`)) {
|
||||||
return this.getResource(name).getAction(`${name}:${action}`);
|
return this.getResource(name).getAction(`${name}:${action}`);
|
||||||
}
|
}
|
||||||
return this.getResource(name).getAction(action);
|
return this.getResource(name).getAction(action);
|
||||||
|
@ -22,17 +22,9 @@ describe('middleware', () => {
|
|||||||
ctx.body = [3,4];
|
ctx.body = [3,4];
|
||||||
await next();
|
await next();
|
||||||
},
|
},
|
||||||
});
|
'foo2s.bar2s:list': async (ctx, next) => {
|
||||||
console.log({
|
ctx.body = [5,6];
|
||||||
username: process.env.TEST_DB_USER,
|
await next();
|
||||||
password: process.env.TEST_DB_PASSWORD,
|
|
||||||
database: process.env.TEST_DB_DATABASE,
|
|
||||||
host: process.env.TEST_DB_HOST,
|
|
||||||
port: process.env.TEST_DB_PORT as any,
|
|
||||||
dialect: process.env.TEST_DB_DIALECT as any,
|
|
||||||
dialectOptions: {
|
|
||||||
charset: 'utf8mb4',
|
|
||||||
collate: 'utf8mb4_unicode_ci',
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
database = new Database({
|
database = new Database({
|
||||||
@ -84,4 +76,28 @@ describe('middleware', () => {
|
|||||||
response = await request(http.createServer(app.callback())).get('/api/bars/1/foo');
|
response = await request(http.createServer(app.callback())).get('/api/bars/1/foo');
|
||||||
expect(response.body).toEqual([3,4]);
|
expect(response.body).toEqual([3,4]);
|
||||||
});
|
});
|
||||||
|
it('shound work', async () => {
|
||||||
|
database.table({
|
||||||
|
name: 'foo2s',
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
type: 'belongsToMany',
|
||||||
|
name: 'bar2s',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
});
|
||||||
|
database.table({
|
||||||
|
name: 'bar2s',
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
type: 'belongsToMany',
|
||||||
|
name: 'foo2s',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
});
|
||||||
|
let response = await request(http.createServer(app.callback())).get('/api/foo2s/1/bar2s');
|
||||||
|
expect(response.body).toEqual([5,6]);
|
||||||
|
response = await request(http.createServer(app.callback())).get('/api/bar2s/1/foo2s');
|
||||||
|
expect(response.body).toEqual([1,2]);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@ -18,7 +18,6 @@ export default function middleware(options: MiddlewareOptions = {}) {
|
|||||||
paramsKey = 'params',
|
paramsKey = 'params',
|
||||||
nameRule = getNameByParams,
|
nameRule = getNameByParams,
|
||||||
} = options;
|
} = options;
|
||||||
console.log(resourcer)
|
|
||||||
return async (ctx: ResourcerContext, next: () => Promise<any>) => {
|
return async (ctx: ResourcerContext, next: () => Promise<any>) => {
|
||||||
ctx.resourcer = resourcer;
|
ctx.resourcer = resourcer;
|
||||||
let params = parseRequest({
|
let params = parseRequest({
|
||||||
@ -34,7 +33,6 @@ export default function middleware(options: MiddlewareOptions = {}) {
|
|||||||
try {
|
try {
|
||||||
const resourceName = nameRule(params);
|
const resourceName = nameRule(params);
|
||||||
if (!resourcer.isDefined(resourceName)) {
|
if (!resourcer.isDefined(resourceName)) {
|
||||||
console.log('undefined')
|
|
||||||
const names = resourceName.split('.');
|
const names = resourceName.split('.');
|
||||||
const tableName = names.shift();
|
const tableName = names.shift();
|
||||||
if (database.isDefined(tableName)) {
|
if (database.isDefined(tableName)) {
|
||||||
@ -75,10 +73,9 @@ export default function middleware(options: MiddlewareOptions = {}) {
|
|||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(resource);
|
// console.log(resource);
|
||||||
// action 需要 clone 之后再赋给 ctx
|
// action 需要 clone 之后再赋给 ctx
|
||||||
ctx.action = resourcer.getAction(resourceName, params.actionName).clone();
|
ctx.action = resourcer.getAction(resourceName, params.actionName).clone();
|
||||||
console.log(ctx.action);
|
|
||||||
ctx.action.setContext(ctx);
|
ctx.action.setContext(ctx);
|
||||||
// 自带 query 处理的不太给力,需要用 qs 转一下
|
// 自带 query 处理的不太给力,需要用 qs 转一下
|
||||||
const query = qs.parse(qs.stringify(ctx.query));
|
const query = qs.parse(qs.stringify(ctx.query));
|
||||||
|
Loading…
Reference in New Issue
Block a user