2024-06-14 12:08:41 +00:00
|
|
|
import Browser from '../utils/browser'
|
|
|
|
import { loadFixture, getPort, Nuxt } from '../utils'
|
|
|
|
|
|
|
|
let port
|
|
|
|
const browser = new Browser()
|
|
|
|
const url = route => 'http://localhost:' + port + route
|
|
|
|
|
|
|
|
let nuxt = null
|
|
|
|
let page = null
|
|
|
|
|
|
|
|
describe('page mount times while changing layouts', () => {
|
|
|
|
beforeAll(async () => {
|
|
|
|
const config = await loadFixture('page-mount-with-layouts')
|
|
|
|
nuxt = new Nuxt(config)
|
|
|
|
await nuxt.ready()
|
|
|
|
|
|
|
|
port = await getPort()
|
|
|
|
await nuxt.server.listen(port, 'localhost')
|
|
|
|
await browser.start()
|
|
|
|
page = await browser.page(url('/page-1'))
|
|
|
|
})
|
|
|
|
|
|
|
|
test('Open /page-1 and mount 1 times', async () => {
|
|
|
|
expect(await page.$text('h1')).toBe('Layout 1')
|
|
|
|
expect(await page.$text('h2')).toBe('Page 1')
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(1)
|
|
|
|
})
|
|
|
|
|
|
|
|
test('Change layout and mount 2 times', async () => {
|
|
|
|
page = await browser.page(url('/page-1'))
|
|
|
|
|
|
|
|
await page.nuxt.navigate('/page-2')
|
|
|
|
|
|
|
|
expect(await page.$text('h1')).toBe('Layout 2')
|
|
|
|
expect(await page.$text('h2')).toBe('Page 2')
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(2)
|
|
|
|
})
|
|
|
|
|
|
|
|
test('Change layout multiple times', async () => {
|
|
|
|
page = await browser.page(url('/page-2'))
|
|
|
|
|
|
|
|
await page.nuxt.navigate('/page-1')
|
|
|
|
|
|
|
|
expect(await page.$text('h1')).toBe('Layout 1')
|
|
|
|
expect(await page.$text('h2')).toBe('Page 1')
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(2)
|
|
|
|
|
|
|
|
await page.nuxt.navigate('/page-2')
|
|
|
|
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(3)
|
|
|
|
|
|
|
|
await page.nuxt.navigate('/page-1')
|
|
|
|
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(4)
|
|
|
|
|
|
|
|
await page.nuxt.navigate('/page-1', false)
|
|
|
|
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(4)
|
|
|
|
})
|
2024-06-14 12:57:40 +00:00
|
|
|
|
|
|
|
test('Open 404 error-page and mount 1 times', async () => {
|
|
|
|
page = await browser.page(url('/404'))
|
|
|
|
|
|
|
|
expect(await page.$text('h1')).toBe('Layout error')
|
|
|
|
expect(await page.$text('h2')).toBe('Error page 404')
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(1)
|
|
|
|
})
|
|
|
|
|
|
|
|
test('Open another error-page and mount 1 times', async () => {
|
|
|
|
page = await browser.page(url('/403'))
|
|
|
|
|
|
|
|
expect(await page.$text('h1')).toBe('Layout error')
|
|
|
|
expect(await page.$text('h2')).toBe('Error page 403')
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(1)
|
|
|
|
})
|
|
|
|
|
|
|
|
test('Change error layout to common', async () => {
|
|
|
|
page = await browser.page(url('/404'))
|
|
|
|
|
|
|
|
await page.nuxt.navigate('/page-1')
|
|
|
|
|
|
|
|
expect(await page.$text('h1')).toBe('Layout 1')
|
|
|
|
expect(await page.$text('h2')).toBe('Page 1')
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(2)
|
|
|
|
})
|
|
|
|
|
|
|
|
test('Change common layout to error', async () => {
|
|
|
|
page = await browser.page(url('/page-1'))
|
|
|
|
|
|
|
|
await page.nuxt.navigate('/404')
|
|
|
|
|
|
|
|
expect(await page.$text('h1')).toBe('Layout error')
|
|
|
|
expect(await page.$text('h2')).toBe('Error page 404')
|
|
|
|
expect(await page.evaluate(() => window.mountedCount)).toEqual(2)
|
|
|
|
})
|
2024-06-14 12:08:41 +00:00
|
|
|
})
|