rsnext/test/examples/examples.test.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

102 lines
2.4 KiB
TypeScript
Raw Normal View History

import { nextTestSetup } from 'e2e-utils'
import path from 'path'
import fs from 'fs-extra'
const testedExamples = [
// Internal features
'active-class-name',
'amp',
'amp-first',
'amp-story',
'api-routes',
'api-routes-cors',
'api-routes-middleware',
'api-routes-rate-limit',
'api-routes-rest',
'app-dir-i18n-routing',
'app-dir-mdx',
'basic-css',
'basic-export',
'blog',
'blog-starter',
'catch-all-routes',
'custom-routes-proxying',
'custom-server',
'data-fetch',
'dynamic-routing',
'environment-variables',
'fast-refresh-demo',
'head-elements',
'headers',
'hello-world',
'hello-world-esm',
'i18n-routing',
'image-component',
'image-legacy-component',
'layout-component',
'middleware',
'middleware-matcher',
'modularize-imports',
'nested-components',
'next-css',
'next-forms',
'progressive-render',
'redirects',
'remove-console',
'reproduction-template',
'rewrites',
'script-component',
'ssr-caching',
'styled-jsx-with-csp',
'svg-components',
'using-router',
'with-absolute-imports',
'with-app-layout',
'with-context-api',
'with-env-from-next-config-js',
'with-loading',
'with-shallow-routing',
'with-sitemap',
'with-typescript',
'with-typescript-types',
'with-web-worker',
'with-webassembly',
// Library integrations that we can't break
'with-jest',
'with-jest-babel',
'with-mdx',
'with-mdx-remote',
'with-turbopack',
'with-vercel-fetch',
]
describe.each(testedExamples)(`example '%s'`, (example) => {
// If there is an issue during a build, jest won't tell us which example caused it
// we need to log it ourselfs
beforeAll(() => {
require('console').log(`Running example '${example}'`)
})
const exampleFiles = path.join(__dirname, '..', '..', 'examples', example)
const packageJson = fs.readJsonSync(path.join(exampleFiles, 'package.json'))
describe(`example '${example}'`, () => {
nextTestSetup({
files: exampleFiles,
dependencies: {
// We need to make sure that these default dependencies are not installed by default
// for our examples to ensure that they have all their dependencies in package.json
'@types/node': undefined,
'@types/react': undefined,
next: undefined,
react: undefined,
'react-dom': undefined,
typescript: undefined,
...packageJson.dependencies,
...packageJson.devDependencies,
},
})
it('builds', () => {})
})
})