I want to test the state data passed from server to client.
nuxt.renderRoute()
does not execute serverMiddleware.
nuxtServerInit does not get request data by argument in nuxt.renderRoute()
.
nuxt.renderRequest()
executes serverMiddleware.
nuxtServerInit can get request data by argument in nuxt.renderRequest()
.
const { Nuxt, Builder } = require('nuxt')
const config = require('../nuxt.test.config.js')
const expect = require('chai').expect
config.dev = false
describe('Server side state', function() {
let nuxt;
this.timeout(30000);
before(async function() {
nuxt = new Nuxt(config)
await new Builder(nuxt).build()
})
it('/', async function() {
let req = {
method: 'get'
path: '/',
header: {},
data: {}
}
let result = await nuxt.renderRequest(req)
expect(result.context.state).to.deep.equal({ user: '12345678901234567890' })
});
it('/abc', async function() {
let req = {
method: 'get'
path: '/abc',
header: {},
data: {}
}
let result = await nuxt.renderRequest('/abc')
expect(result.context.state).to.deep.equal({ user: 'abc' })
});
});
<!--cmty--><!--cmty_prevent_hook--><div align="right"><sub><em>This feature request is available on <a href="https://nuxtjs.cmty.io">Nuxt.js</a> community (<a href="https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c7024">#c7024</a>)</em></sub></div>