Revisit your Sequelize ORM lab, write some tests for it, and hook it up with Travis CI.
API Tests
Write API tests for the PATCH /tracks/:id
endpoint.
Test 1: Track Does Not Exist
Assert that a 404 status code is returned when a track isn't found.
Test 2: Updating a Track Successfully
When updating a track succeeds, assert that a 200 status code is returned and the track in the response body contains the updated attributes.
Test 3: Validation Errors
Create a test with a request body of:
{ "name": "", "milliseconds": "a", "unitPrice": "b" }
Your test should assert that a 422 status code is returned.
Also write assertion(s) verifying that the API responds with the correct validation error messages. The name
attribute should fail because it is empty. The milliseconds
and unitPrice
attributes should fail because they aren't numeric.
Unit Tests
Write unit tests for the Track
model that assert the following:
Test 1: Milliseconds isn't numeric
Write a test that asserts validation fails when milliseconds isn't numeric.
Test 2: Milliseconds is numeric
Write a test that asserts validation passes when milliseconds is numeric.
Travis CI
Enable Travis CI for your repository. Create a new branch and make a pull request (PR) to the master branch. You should see Travis tests running for your PR. All of your tests should pass in order to get full credit.
Lastly, in your PR, create a README.md
file if you don't already have one and add the Travis CI status badge to it.
Submission
Send an email to the TA and myself with the subject line Assignment 5: Testing and Continuous Integration containing the link to your PR.