Jest-Puppeteer


Jest-Puppeteer allows you to run tests with Jest on browsers controlled with Puppeteer.


To get started, please install the package:

npm install --save-dev jest-puppeteer puppeteer jest

Next, specify these settings in your Jest configuration file (jest.config.js):

module.exports = {
  rootDir: '.',
  testTimeout: 20000,
  testMatch: [
    '<rootDir>/*.spec.js'
  ],
  preset: 'jest-puppeteer'
}

Configure Jest-Puppeteer


To configure Jest Puppeteer, please create a new file called jest-puppeteer.config.js and add this to the file:

module.exports = {
  connect: {
    browserWSEndpoint: 'wss://chrome.headlesstesting.com/?token=[YOUR-TOKEN]'
  }
}

This instructs Jest Puppeteer to connect to our Headless grid and use the latest (headless) Chrome browser.

You can replace chrome.headlesstesting.com with the other browsers we provide.

Run your first test


To create a test, please create a new file called sample.spec.js and add this to the file:

describe('Google', () => {
  beforeAll(async () => {
    await page.goto('https://google.com')
  })

  it('should display google text on page', async () => {
    await expect(page).toMatch('google')
  })
})

Now we can run our first test:

$ jest

This will open Google in a Headless Chrome browser and verify if the word google is on the page.

You should see something like this in your terminal:

PASS  ./sample.spec.js (6.503s)
  Google
    ✓ should display google text on page (81ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total

This test will also appear in your Member Dashboard.