2018-10-12 15:37:13 -04:00
---
title: Run Functional Tests on an API Response using Chai-HTTP III - PUT method
---
2019-07-24 00:59:27 -07:00
# Run Functional Tests on an API Response using Chai-HTTP III - PUT method
2018-10-12 15:37:13 -04:00
2019-07-24 00:59:27 -07:00
---
## Problem Explanation
2019-07-02 07:00:18 +10:00
To begin, open the file "tests/2_functional_tests.js" and locate the test 'send {surname: "Colombo"}'
2018-10-12 15:37:13 -04:00
2019-07-24 00:59:27 -07:00
---
## Hints
### Hint 1
2018-10-12 15:37:13 -04:00
2019-07-02 07:00:18 +10:00
Using the example above, look at the assertions and how they are making comparisons between the expected and actual values of the response
2019-07-24 00:59:27 -07:00
### Hint 2
2019-07-02 07:00:18 +10:00
You need to use .send() to attach the payload `{surname: 'Colombo'}` to the request
2019-07-24 00:59:27 -07:00
### Hint 3
2019-07-02 07:00:18 +10:00
Replace the `assert.fail()` statement with your own tests checking for status, type, body.name, and body.surname in that order. Remember, all of these values are contained in the response (`res` ), and you should expect the response to be of type `'application/json'` .
2019-07-24 00:59:27 -07:00
---
## Solutions
< details > < summary > Solution 1 (Click to Show/Hide)< / summary >
2019-07-02 07:00:18 +10:00
```js
2019-07-24 00:59:27 -07:00
test('send {surname: "Colombo"}', function(done) {
2019-07-02 07:00:18 +10:00
// we setup the request for you...
2019-07-24 00:59:27 -07:00
chai
.request(server)
.put('/travellers')
/** send {surname: 'Colombo'} here ** /
.send({ surname: 'Colombo' })
// .send({...})
.end(function(err, res) {
/** your tests here ** /
assert.equal(res.status, 200, 'response status should be 200');
assert.equal(res.type, 'application/json', 'Response should be json');
assert.equal(
res.body.name,
'Cristoforo',
'res.body.name should be "Christoforo"'
);
assert.equal(
res.body.surname,
'Colombo',
'res.body.surname should be "Colombo"'
);
done(); // Never forget the 'done()' callback...
});
2019-07-02 07:00:18 +10:00
});
2019-07-24 00:59:27 -07:00
```
< / details >