* fix: update mocha chai challenge text, code snippets * fix: add expected output values to instructions * fix: reword instructions a little bit * fix: adjust challenge test for new test suite in boilerpplate Co-authored-by: moT01 <20648924+moT01@users.noreply.github.com>
3.4 KiB
id, title, challengeType, forumTopicId, dashedName
id | title | challengeType | forumTopicId | dashedName |
---|---|---|---|---|
587d824f367417b2b2512c5b | Run Functional Tests on an API Response using Chai-HTTP IV - PUT method | 2 | 301591 | run-functional-tests-on-an-api-response-using-chai-http-iv---put-method |
--description--
As a reminder, this project is being built upon the following starter project on Replit, or cloned from GitHub.
This exercise is similar to the previous one.
Now that you know how to test a PUT
request, it's your turn to do it from scratch.
--instructions--
Within tests/2_functional-tests.js
, alter the 'Send {surname: "da Verrazzano"}'
test (// #4
) and use the put
and send
methods to test the '/travellers'
endpoint.
Send the following JSON object with your PUT request:
{
"surname": "da Verrazzano"
}
Check for the following within the request.end
callback:
- The
status
should be200
- The
type
should beapplication/json
- The
body.name
should beGiovanni
- The
body.surname
should beda Verrazzano
Follow the assertion order above - we rely on it. Also, be sure to remove assert.fail()
once complete.
--hints--
All tests should pass
(getUserInput) =>
$.get(getUserInput('url') + '/_api/get-tests?type=functional&n=3').then(
(data) => {
assert.equal(data.state, 'passed');
},
(xhr) => {
throw new Error(xhr.responseText);
}
);
You should test for res.status
to be 200
(getUserInput) =>
$.get(getUserInput('url') + '/_api/get-tests?type=functional&n=3').then(
(data) => {
assert.equal(data.assertions[0].method, 'equal');
assert.equal(data.assertions[0].args[0], 'res.status');
assert.equal(data.assertions[0].args[1], '200');
},
(xhr) => {
throw new Error(xhr.responseText);
}
);
You should test for res.type
to be 'application/json'
(getUserInput) =>
$.get(getUserInput('url') + '/_api/get-tests?type=functional&n=3').then(
(data) => {
assert.equal(data.assertions[1].method, 'equal');
assert.equal(data.assertions[1].args[0], 'res.type');
assert.match(data.assertions[1].args[1], /('|")application\/json\1/);
},
(xhr) => {
throw new Error(xhr.responseText);
}
);
You should test for res.body.name
to be 'Giovanni'
(getUserInput) =>
$.get(getUserInput('url') + '/_api/get-tests?type=functional&n=3').then(
(data) => {
assert.equal(data.assertions[2].method, 'equal');
assert.equal(data.assertions[2].args[0], 'res.body.name');
assert.match(data.assertions[2].args[1], /('|")Giovanni\1/);
},
(xhr) => {
throw new Error(xhr.responseText);
}
);
You should test for res.body.surname
to be 'da Verrazzano'
(getUserInput) =>
$.get(getUserInput('url') + '/_api/get-tests?type=functional&n=3').then(
(data) => {
assert.equal(data.assertions[3].method, 'equal');
assert.equal(data.assertions[3].args[0], 'res.body.surname');
assert.match(data.assertions[3].args[1], /('|")da Verrazzano\1/);
},
(xhr) => {
throw new Error(xhr.responseText);
}
);
--solutions--
/**
Backend challenges don't need solutions,
because they would need to be tested against a full working project.
Please check our contributing guidelines to learn more.
*/