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

Adding describe block for the test cases

I'm going to use describe to group all of the routes. I'm going to have multiple test cases for some routes, and it's nice to add a describe block so you can quickly glance at the test output in the Terminal. The describe block for POST Todos will simply be called POST /todos. Then, we can add our arrow function (=>), and inside of here we can start laying out our test cases. The first test is going to verify that when we send the appropriate data, everything goes as expected:

const {Todo} = require('./../models/todo');

describe('POST /todos', () => { it('should create a new todo') });

Now, we can add our callback function, and this function is going to take the done argument because this is going to be an asynchronous test. You have to specify done, otherwise this test is not going to work as expected. In the callback function, what we're going to do is create a variable called text. This is the only setup data we really need. We just need a string, and we're going to use that string throughout. Go ahead and give this any value you like. I'm going to use Test todo text.

describe('POST /todos', () => {
  it('should create a new todo',(done) => {
    var text = 'Test todo text';
  });
});

Now it's time to start making that request via supertest. We only made GET requests previously, but POST requests are just as easy.