'Why isn't my Promise in a Post response in MockAdapter being evaluated?

When I mock a get using MockAdapter and reply with a Promise, the promise is evaluated fine and I'm able to select the response data.

When I try the same thing with a Post, it doesn't work. The .then method isn't evaluated and I don't get the response data.

test:

var axios = require("axios");
var MockAdapter = require("axios-mock-adapter");
let mock;

beforeAll(() => {
  mock = new MockAdapter(axios);
});

afterEach(() => {
  mock.reset();
});

test("", async () => {
  const response = { data: { assignee: '' }};
  mock.onPost(`${APP_ROOT}/${ASSIGN}`).reply(function (config) {
    return new Promise(function(resolve, reject) {
      setTimeout(function () {
          resolve([200, response]);
      }, 1000);
    });
  })
})

useEffect in page:

useEffect(() => {
  assign(id)
    .then(responseData => {
    })
    .catch(error => {
    })
}

I've got a very similar test using mock.onGet returning a Promise and everything works fine. Is there a reason why this shouldn't work for a Post?

I've tried various url's on the Post. For the onGet, I leave it blank but haven't seen any onPost examples with this - is onPost() with no url legal?

In case it matters, I've also set up a localStorage mock.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source