2022-09-30 03:37:59 +02:00
import rule from '@next/eslint-plugin-next/dist/rules/no-script-component-in-head'
2021-08-24 14:52:45 +02:00
import { RuleTester } from 'eslint'
; ( RuleTester as any ) . setDefaultConfig ( {
2021-08-14 01:16:15 +02:00
parserOptions : {
ecmaVersion : 2018 ,
sourceType : 'module' ,
ecmaFeatures : {
modules : true ,
jsx : true ,
} ,
} ,
} )
2021-08-24 14:52:45 +02:00
const ruleTester = new RuleTester ( )
2021-08-14 01:16:15 +02:00
ruleTester . run ( 'no-script-in-head' , rule , {
valid : [
` import Script from "next/script";
const Head = ( { children } ) = > children
export default function Index() {
return (
< Head >
< Script > < / Script >
< / Head >
) ;
}
` ,
] ,
invalid : [
{
code : `
import Head from "next/head" ;
import Script from "next/script" ;
2022-06-14 04:17:42 +02:00
2021-08-14 01:16:15 +02:00
export default function Index() {
return (
< Head >
< Script > < / Script >
< / Head >
) ;
} ` ,
filename : 'pages/index.js' ,
errors : [
{
message :
2022-09-12 18:15:33 +02:00
'`next/script` should not be used in `next/head` component. Move `<Script />` outside of `<Head>` instead. See: https://nextjs.org/docs/messages/no-script-component-in-head' ,
2021-08-14 01:16:15 +02:00
} ,
] ,
} ,
] ,
} )