diff --git a/packages/jest-jasmine2/src/__tests__/queueRunner-test.js b/packages/jest-jasmine2/src/__tests__/queueRunner-test.js index bbda173bc72a..dbedb86e239f 100644 --- a/packages/jest-jasmine2/src/__tests__/queueRunner-test.js +++ b/packages/jest-jasmine2/src/__tests__/queueRunner-test.js @@ -117,4 +117,17 @@ describe('queueRunner', () => { ); expect(fnTwo).toHaveBeenCalled(); }); + + it('calls `fail` with arguments', async () => { + const failFn = jest.fn(next => next.fail('miserably', 'failed')); + const options = { + clearTimeout, + fail: jest.fn(), + queueableFns: [{fn: failFn}], + setTimeout, + }; + await queueRunner(options); + + expect(options.fail).toHaveBeenCalledWith('miserably', 'failed'); + }); }); diff --git a/packages/jest-jasmine2/src/queueRunner.js b/packages/jest-jasmine2/src/queueRunner.js index 11770f81f9ec..486e7a9162b5 100644 --- a/packages/jest-jasmine2/src/queueRunner.js +++ b/packages/jest-jasmine2/src/queueRunner.js @@ -31,7 +31,7 @@ function queueRunner(options: Options) { const mapper = ({fn, timeout}) => { const promise = new Promise(resolve => { const next = once(resolve); - next.fail = () => { + next.fail = function() { options.fail.apply(null, arguments); resolve(); }; diff --git a/packages/jest-jasmine2/src/treeProcessor.js b/packages/jest-jasmine2/src/treeProcessor.js index 036ba0b43e66..e009bccd00cd 100644 --- a/packages/jest-jasmine2/src/treeProcessor.js +++ b/packages/jest-jasmine2/src/treeProcessor.js @@ -74,7 +74,7 @@ function treeProcessor(options: Options) { throw new Error('`node.children` is not defined.'); } const children = node.children.map(child => executeNode(child, enabled)); - return [...node.beforeAllFns, ...children, ...node.afterAllFns]; + return node.beforeAllFns.concat(children).concat(node.afterAllFns); } }