Advanced Node.js Development
上QQ阅读APP看书,第一时间看更新

Running the test suite

I'm going to go ahead and move into the Terminal, clear the Terminal output, and now we can start running the test suite by using the following command:

npm run test-watch

This is going to start up nodemon which will start up the test suite, and right here we get one test passing, should create a new todo:

We can verify that everything is working as expected by tweaking some values. I can add on 1 as follows:

request(app)
.post('/todos')
.send({text})
.expect(200)
.expect((res) => { expect(res.body.text).toBe(text + '1'); })

Just to prove that it is actually doing what it says it's doing. You can see that we're getting an error because the two are not equal.

The same thing holds true with our status. If I change the status to something else, like 201, the test suite is going to rerun and it is going to fail. Last but not least, down below, if I change toBe to 3 as follows:

expect(todos.length).toBe(3); 

It's going to fail because we're always wiping the database, and therefore the only correct value here would be 1. Now that we have this in place, we can add our second test case. This is going to be the test case that verifies that a Todo does not get created when we send bad data.