Write API tests for HTTP PUT method

Image for post
Image for post
https://youtu.be/d2mGuL4VlgA

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. 🙌

https://youtu.be/d2mGuL4VlgA

You can also clone the GitHub repo to access this code

https://www.youtube.com/watch?v=ZSVw3TyZur4&list=PL6AdzyjjD5HDR2kNRU2dA1C8ydXRAaaBV&ab_channel=AutomationBro

I hope this post helped you out, let me know in the comments below!

Happy testing! 😄

Subscribe to my YouTube channel
Support my work — https://www.buymeacoffee.com/automationbro
Follow @automationbro on Twitter

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store