vendredi 25 septembre 2020

Nuxt end to end testing with jest

Hello im searching for a way to use component testing as well as end to end testing with nuxt.

we want to be able to test components (which already works) and also check if pages parse their url parameters correctly or sitemaps are correctly created and other page level features and router functions

i tried ava but we already implemented the component testing with jest which works fine now and in the nuxt docs the server rendering for testing was described with ava and i adapted that to jest now but i get timeout errors so i increased the time out to 40 seconds but still get a timeout.

did anybody get the testing to work with the nuxt builder like in the example (https://nuxtjs.org/guide/development-tools)?

this is my end to end test example file

// test.spec.js:
const { resolve } = require('path')
const { Nuxt, Builder } = require('nuxt')

// We keep the nuxt and server instance
// So we can close them at the end of the test
let nuxt = null

// Init Nuxt.js and create a server listening on localhost:4000
beforeAll(async (done) => {
  jest.setTimeout(40000)

  const config = {
    dev: false,
    rootDir: resolve(__dirname, '../..'),
    telemetry: false,
  }
  nuxt = new Nuxt(config)
  try {
    await new Builder(nuxt).build()
    nuxt.server.listen(4000, 'localhost')
  } catch (e) {
    console.log(e)
  }

  done()
}, 30000)
describe('testing nuxt', () => {
  // Example of testing only generated html
  test('Route / exits and render HTML', async (t, done) => {
    const context = {}
    const { html } = await nuxt.server.renderRoute('/', context)
    t.true(html.includes('<h1 class="red">Hello world!</h1>'))
    jest.setTimeout(30000)
    done()
  })
})
// Close server and ask nuxt to stop listening to file changes
afterAll((t) => {
  nuxt.close()
})

my current error is :

 ● Test suite failed to run

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

any info is very appreciated as i could not resolve this issue myself

Aucun commentaire:

Enregistrer un commentaire