Я тестирую свои микросервисы, чтобы увидеть, изящно ли они выдают ошибки от источника к клиенту. И мои тесты ожидают выдачи ошибки, но я проверяю, как правильно проверить это. У меня возникли некоторые проблемы с использованием Ax ios и Asyn c Ошибка ожидания / обещания. Как я могу правильно проверить это? только через коды состояния и тело ответа?
Вот мой клиент: Мои приемочные тесты За исключением ошибки
it("Verify Throws Exception", async () => {
const shouldThrowError = await ApiHelper.makeAxiosCall({
badData,
});
expect(shouldThrowError).toThrow(new Error("Bad Request"));
expect(shouldThrowError).toBe(400); // Can I test for this to?
}, 10000);
ApiHelper
export async function updateData({
badData
}) {
let result = null;
result = await axios({
method: "POST",
url: `${process.env.MICRO_B_URL}/api/users`,
data: {
badData,
},
})
.then(({ data }) => data.data)
.catch(err => {
throw err;
});
return result
My Aggregator Service
export async function makeAnotherRestCall(
req: any,
res: Response,
next: NextFunction,
) {
const { badData } = req.body;
const hasBadData = validateData(badData)
if(hasBadData) throw new Error("Bad Request")
return res.status(200).json({
data,
});
У меня есть промежуточное ПО для форматирования ошибок, например
export const handleError = (error: any, res: any, next: NextFunction) => {
return res.status(error.status || 500).json({
error: {
status: error.status || 500,
message: error.message || "Internal Server Error",
stack: error.stack,
},
});
};