015a7dd9ee
Make templates actual executable tests to that we ensure there are no regressions. It also makes the setup easier. Also changes the layout to typescript because that's what we want to use by default anyway. Also refactors helper function to use plop specific `{{ toFileName name }}` syntax for easier template modification. Co-authored-by: JJ Kasper <22380829+ijjk@users.noreply.github.com>
34 lines
1 KiB
TypeScript
34 lines
1 KiB
TypeScript
import { createNextDescribe } from 'e2e-utils'
|
|
|
|
createNextDescribe(
|
|
'{{name}}',
|
|
{
|
|
files: __dirname,
|
|
},
|
|
({ next }) => {
|
|
// Recommended for tests that check HTML. Cheerio is a HTML parser that has a jQuery like API.
|
|
it('should work using cheerio', async () => {
|
|
const $ = await next.render$('/')
|
|
expect($('p').text()).toBe('hello world')
|
|
})
|
|
|
|
// Recommended for tests that need a full browser
|
|
it('should work using browser', async () => {
|
|
const browser = await next.browser('/')
|
|
expect(await browser.elementByCss('p').text()).toBe('hello world')
|
|
})
|
|
|
|
// In case you need the full HTML. Can also use $.html() with cheerio.
|
|
it('should work with html', async () => {
|
|
const html = await next.render('/')
|
|
expect(html).toContain('hello world')
|
|
})
|
|
|
|
// In case you need to test the response object
|
|
it('should work with fetch', async () => {
|
|
const res = await next.fetch('/')
|
|
const html = await res.text()
|
|
expect(html).toContain('hello world')
|
|
})
|
|
}
|
|
)
|