【发布时间】:2019-09-12 18:01:50
【问题描述】:
我在 Loopback 框架中有工作的 REST API。在那我有 POST 方法,我接受一个有效负载和 3 个不同的文件。代码如下所示
@post("/v1/api/order", {
responses: {
200: {
content: {
"application/json": { schema: { "x-ts-type": Order } },
"multipart/mixed": {
"x-parser": "stream",
schema: { type: "object" }
}
},
description: "Order model instance"
}
}
})
public async createOrder(
@requestBody({
content: {
"multipart/form-data": {
"x-parser": "stream",
schema: { type: "object" }
}
},
description: "multipart/form-data value.",
required: true
})
request: Request,
@inject(RestBindings.Http.RESPONSE) response: Response): Promise<any> {
this.logger.info(`createOrder`, { userId: "loggedOn User", method: "createOrder" });
const fileUpload = new FileUploader();
const aHelper = new AttachmentHelper();
const results: any = await fileUpload
.multerFileUpload(request, response)
.then((result: any) => {
return {
attachmentDetails: aHelper.attachmentInformation(result),
orderDetails: _.get(result.fields, "payload")
};
})
.catch((err: Error) => {
response.status(400);
this.logger.error("createOrder", err.stack, "error occured while create order");
throw err;
});
我正在编写端到端测试,但无法使用 send 方法发送有效负载。我正在使用测试实验室。谁能建议如何为此编写测试用例。
it.only('Insert the order', async () => {
const neworder = givenNewOrderPayload();
console.log("New Order Payload.", neworder);
await client.post(`/v1/api/order`)
.set('Content-Type', 'multipart/form-data')
.set(neworder)
.expect(200)
}
function givenNewOrderPayload() {
let userInput = a;
return {'payload': userInput}
}
我希望将数据插入数据库中,状态码为 200。 实际结果:400 Bad Request
【问题讨论】:
标签: typescript loopback