Similar to the HTTP POST method, the HTTP PUT method also takes in the request payload but instead of creating a new resource, it lets the user update the existing resource.
The difference between the PUT
and POST
method is that PUT
is idempotent i.e you can keep calling the same request multiple times but it won’t have any side effects, unlike a POST
request.
Let’s take a look at an example of a PUT
request below –
it('PUT /users/:id', () => { // data to update const data = { status: 'Active', name: `Luffy - ${Math.floor(Math.random() * 9999)}`, }; return request .put('users/132') .set('Authorization', `Bearer ${TOKEN}`) .send(data) .then((res) => { expect(res.body.data).to.deep.include(data); }); });
The above code will generate a result similar to this –
{ code: 200, meta: null, data: { id: 132, name: 'Luffy - 7568', // name updated status: 'Active', // status updated email: 'dharitri_chopra@rogahn.name', gender: 'Female', created_at: '2020-10-05T03:50:06.247+05:30', updated_at: '2020-10-06T00:34:22.958+05:30' } }
There you go, that’s all we need to do to create an API test for the HTTP PUT method. ?
Check out this video to see a detailed explanation on how to work with the HTTP PUT method:
You can also clone the GitHub repo to access this code