import rule from '@next/eslint-plugin-next/dist/rules/no-duplicate-head' import { RuleTester } from 'eslint' ;(RuleTester as any).setDefaultConfig({ parserOptions: { ecmaVersion: 2018, sourceType: 'module', ecmaFeatures: { modules: true, jsx: true, }, }, }) const ruleTester = new RuleTester() ruleTester.run('no-duplicate-head', rule, { valid: [ { code: `import Document, { Html, Head, Main, NextScript } from 'next/document' class MyDocument extends Document { static async getInitialProps(ctx) { //... } render() { return ( ) } } export default MyDocument `, filename: 'pages/_document.js', }, { code: `import Document, { Html, Head, Main, NextScript } from 'next/document' class MyDocument extends Document { render() { return ( ) } } export default MyDocument `, filename: 'pages/_document.tsx', }, ], invalid: [ { code: ` import Document, { Html, Main, NextScript } from 'next/document' import Head from 'next/head' class MyDocument extends Document { render() { return ( ) } } export default MyDocument `, filename: 'pages/_document.js', errors: [ { message: 'Do not include multiple instances of ``. See: https://nextjs.org/docs/messages/no-duplicate-head', type: 'JSXElement', }, { message: 'Do not include multiple instances of ``. See: https://nextjs.org/docs/messages/no-duplicate-head', type: 'JSXElement', }, ], }, { code: ` import Document, { Html, Main, NextScript } from 'next/document' import Head from 'next/head' class MyDocument extends Document { render() { return (