describe('db truncation in before hook', () => {
beforeEach('truncating db', () => {
return db.none('TRUNCATE courses RESTART IDENTITY')
});
// in one test we insert data into our database
it('inserting data into db', () => {
return db.none('insert into courses (title) values (${title})', { title: 'hello' })
});
// in another test we check db is indeed been cleaned by the before hook
it('not seeing data in the db', () => {
return db.any('select * from courses').then((data) => {
expect(data).to.deep.equal([]);
})
});
});
Por que estamos retornando
db.any/none
promessas de nossos testes?Porque se o Mocha vir uma promessa devolvida do
it
bloco, ele vai esperar até que essa promessa seja resolvida. Caso contrário, nossos testes estariam sempre passando por não acertarexpect
na hora certa.
https://mochajs.org/#asynchronous-codeO que o gancho antes faz?
Ele trunca a
courses
tabela e reinicia suaid
contagem de colunas de sequência (por exemplo ).
https://www.postgresql.org/docs/9.1/static/sql-truncate.html