幸福なプログラマ

プログラマは幸福になれる。

axios-mock-adapterでモックしたAPIへのリクエストが404になる

jestでテストを行う際、以下のように axios-mock-adapter を利用してPost(or put)系APIのモックを作成していました。

const uesr = {...};
const mock = new MockAdapter(axios);
const path = `https://dummy.url.com/api/v1/user/${userId}`;
mock.onPost(path, { params: { user } }).reply(200, {
    uesr: uesr,
});

上記の例はユーザを更新するAPIで、 onPost の第二引数にパラメータとしてuserオブジェクトを渡していました。

しかし、このAPIに対してリクエストを送る処理で Request failed with status code 404 エラーが発生しテストが通りませんでした。

URLも送っているパラメータの値も一致しているはずなのに404になるのでどうしたものかと悩んでいたのですが、axios-mock-adapterのissueに答えがありました

const uesr = {...};
const mock = new MockAdapter(axios);
const path = `https://dummy.url.com/api/v1/user/${userId}`;
mock.onPost(path).reply(200, {
    uesr: uesr,
});

上記のようにパラメータを削除することでAPIリクエストが成功しました。