title: Why the last then() isn't executed?
body: <p>I have the following code in my testUtils.js:</p>
  
  <pre><code>var truncateTable = function (model, trx) {
      console.log(`Truncating ${model.prototype.tableName}`);
      return knex(model.prototype.tableName).transacting(trx).truncate();
  };
  
  utils = {
      /**
       * Database utility for cleaning up its tables
       */
      teardown: function () {
          return knex.transaction(function (trx) {
              return knex.raw('SET foreign_key_checks = 0;').transacting(trx)
                  .then(() =&gt; {                    
                      return truncateTable(models.ProductAnomaly,trx)
                  })
                  .then(() =&gt; {
                      return truncateTable(models.Product, trx);
                  })
                  .then(() =&gt; {
                      return truncateTable(models.TaskListItem, trx);
                  })
                  .then(() =&gt; {
                      return truncateTable(models.TaskList, trx);
                  })
                  .then(() =&gt; {
                      return truncateTable(models.User, trx);
                  })
                  .then(() =&gt; {
                      console.log('TRUNCATE FINISHED');
                      return knex.raw('SET foreign_key_checks = 1;').transacting(trx);
                  });
          });
      }
  }
  </code></pre>
  
  <p>When I run my test it prints:</p>
  
  <pre><code>Truncating products_anomalies
  Truncating products
  Truncating tasklist_items
  Truncating tasklists
  Truncating users
  </code></pre>
  
  <p>But as you may see the line <code>"TRUNCATE FINISHED"</code> is never printed, even though the action (truncate) is performed for all 5 tables. Why?</p>
  
  <p>Here's the <code>before</code> method in my test file:</p>
  
  <pre><code>   before((done) =&gt; {
          this.timeout(10000);
  
          testUtils.teardown()
              .then(() =&gt; {
                  return testUtils.setup();
              })
              .then(() =&gt; {
                  done();
              })
              .catch(err =&gt; console.log(JSON.stringify(err)));
      })
  </code></pre>