'use strict'; /*global expect, describe, it*/ var _interface = require("../../lib/interface"); var chai = require("chai"); describe('interface', function () { it('catch and rethrow with an async stack trace', function (done) { var error = new Error('Some SQL error') function SomeClass() { this.client = { config: { asyncStackTraces: true }, runner: function (){ return { run: function () { return { catch: function (rethrow) { rethrow.call(fakeInstance, error) // by calling here we're simulating that the promise was rejected chai.expect(error.stack).to.equal('Error: Some SQL error\nline1\nline2\nline3') done() }, then: function () {} } } } } } } _interface(SomeClass) var fakeInstance = new SomeClass() fakeInstance._asyncStack = [ 'line1', 'line2', 'line3' ] fakeInstance.then() }) })