diff --git a/test/timeoutAfter.js b/test/timeoutAfter.js index eab18702..299af135 100644 --- a/test/timeoutAfter.js +++ b/test/timeoutAfter.js @@ -36,3 +36,64 @@ tap.test('timeoutAfter test', function (tt) { t.timeoutAfter(1); }); }); + +tap.test('timeoutAfter with Promises', function (tt) { + tt.plan(1); + + var test = tape.createHarness(); + var tc = function (rows) { + tt.same(stripFullStack(rows.toString('utf8')), [ + 'TAP version 13', + '# timeoutAfter with promises', + '# fulfilled promise', + 'not ok 1 fulfilled promise timed out after 1ms', + ' ---', + ' operator: fail', + ' stack: |-', + ' Error: fulfilled promise timed out after 1ms', + ' [... stack stripped ...]', + ' ...', + '# rejected promise', + 'not ok 2 rejected promise timed out after 1ms', + ' ---', + ' operator: fail', + ' stack: |-', + ' Error: rejected promise timed out after 1ms', + ' [... stack stripped ...]', + ' ...', + '', + '1..2', + '# tests 2', + '# pass 0', + '# fail 2' + ].join('\n') + '\n'); + }; + + test.createStream().pipe(concat(tc)); + + test('timeoutAfter with promises', function (t) { + t.plan(2); + + t.test('fulfilled promise', function (st) { + st.plan(1); + st.timeoutAfter(1); + + return new Promise(function (resolve) { + setTimeout(function () { + resolve(); + }, 2); + }); + }); + + t.test('rejected promise', function (st) { + st.plan(1); + st.timeoutAfter(1); + + return new Promise(function (reject) { + setTimeout(function () { + reject(); + }, 2); + }); + }); + }); +});