Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Message "Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout"

I'm using Puppeteer and Jest to run some front end tests.

My tests look as follows:

describe("Profile Tab Exists and Clickable: /settings/user", () => {     test(`Assert that you can click the profile tab`, async () => {       await page.waitForSelector(PROFILE.TAB);       await page.click(PROFILE.TAB);     }, 30000); }); 

Sometimes, when I run the tests, everything works as expectedly. Other times, I get an error:

Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.

     at node_modules/jest-jasmine2/build/queue_runner.js:68:21 <br/>      at Timeout.callback [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:633:19) 

This is strange because:

  1. I specified the timeout to be 30000

  2. Whether or not I get this error is seemingly very random

Why is this happening?

like image 551
Asool Avatar asked Apr 02 '18 00:04

Asool


People also ask

How do I change jest timeout?

Use jest. setTimeout(newTimeout) to increase the timeout value, if this is a long-running test." 1)Increased jest. setTimeout(30000) from 30000 to 60000.

What does jest setTimeout do?

setTimeout(timeout) Set the default timeout interval for tests and before/after hooks in milliseconds.


1 Answers

The timeout you specify here needs to be shorter than the default timeout.

The default timeout is 5000 and the framework by default is jasmine in case of jest. You can specify the timeout inside the test by adding

jest.setTimeout(30000); 

But this would be specific to the test. Or you can set up the configuration file for the framework.

Configuring Jest

// jest.config.js module.exports = {   // setupTestFrameworkScriptFile has been deprecated in   // favor of setupFilesAfterEnv in jest 24   setupFilesAfterEnv: ['./jest.setup.js'] }  // jest.setup.js jest.setTimeout(30000) 

See also these threads:

setTimeout per test #5055

Make jasmine.DEFAULT_TIMEOUT_INTERVAL configurable #652

P.S.: The misspelling setupFilesAfterEnv (i.e. setupFileAfterEnv) will also throw the same error.

like image 57
Tarun Lalwani Avatar answered Oct 22 '22 10:10

Tarun Lalwani