Единственный способ получить доступ к заголовкам запросов в .reply
и проверить его здесь:
mockAxios.onPut(`xxxxx.com`).reply((config) => {
expect(config.headers."Content-Type").toEqual("What do you expect here");
return [200, expectedResult, {
Authorization: `Bearer ${token}`,
"Content-type": "application/x-www-form-urlencoded",
}];
});
На самом деле я считаю, что это также должно быть возможно декларативным способом:
mockAxios.onPut(`xxxxx.com`, undefined, {
expectedHeader1: "value1",
expectedHeader2: "value2"}
).reply(200, expectedResult);
Таким образом, было бы просто выдавать вместо возврата ложного ответа, если заголовки запроса не совпадали.
Но сейчас это не работает.
Причина: axios-mock-adapter
использует deepEqual
для такой фильтрации. Таким образом, нам нужно было бы указать не только несколько требуемых заголовков (на которые мы фокусируемся), но и все заголовки, включая те, которые добавляются в axios самостоятельно (например, Accept
). Так что это не совсем читабельно.
У меня подано # 219 в их репо по этому вопросу. Если это не было преднамеренным по какой-либо причине, это может быть исправлено в будущем.