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 {
|
||||
// 支持注册局部 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(action);
|
||||
|
@ -22,17 +22,9 @@ describe('middleware', () => {
|
||||
ctx.body = [3,4];
|
||||
await next();
|
||||
},
|
||||
});
|
||||
console.log({
|
||||
username: process.env.TEST_DB_USER,
|
||||
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',
|
||||
'foo2s.bar2s:list': async (ctx, next) => {
|
||||
ctx.body = [5,6];
|
||||
await next();
|
||||
},
|
||||
});
|
||||
database = new Database({
|
||||
@ -84,4 +76,28 @@ describe('middleware', () => {
|
||||
response = await request(http.createServer(app.callback())).get('/api/bars/1/foo');
|
||||
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',
|
||||
nameRule = getNameByParams,
|
||||
} = options;
|
||||
console.log(resourcer)
|
||||
return async (ctx: ResourcerContext, next: () => Promise<any>) => {
|
||||
ctx.resourcer = resourcer;
|
||||
let params = parseRequest({
|
||||
@ -34,7 +33,6 @@ export default function middleware(options: MiddlewareOptions = {}) {
|
||||
try {
|
||||
const resourceName = nameRule(params);
|
||||
if (!resourcer.isDefined(resourceName)) {
|
||||
console.log('undefined')
|
||||
const names = resourceName.split('.');
|
||||
const tableName = names.shift();
|
||||
if (database.isDefined(tableName)) {
|
||||
@ -75,10 +73,9 @@ export default function middleware(options: MiddlewareOptions = {}) {
|
||||
return next();
|
||||
}
|
||||
}
|
||||
console.log(resource);
|
||||
// console.log(resource);
|
||||
// action 需要 clone 之后再赋给 ctx
|
||||
ctx.action = resourcer.getAction(resourceName, params.actionName).clone();
|
||||
console.log(ctx.action);
|
||||
ctx.action.setContext(ctx);
|
||||
// 自带 query 处理的不太给力,需要用 qs 转一下
|
||||
const query = qs.parse(qs.stringify(ctx.query));
|
||||
|
Loading…
Reference in New Issue
Block a user