You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: inline_script_id.rs
    path of file: ./repos/oxc/crates/oxc_linter/src/rules/nextjs
    
    the code of the file until where you have to start completion: use oxc_ast::{
    ast::{Expression, JSXAttributeItem, JSXAttributeName, ObjectPropertyKind, PropertyKey},
    AstKind,
};
use oxc_diagnostics::{
    miette::{self, Diagnostic},
    thiserror::Error,
};
use oxc_macros::declare_oxc_lint;
use oxc_span::{GetSpan, Span};
use rustc_hash::FxHashSet;

use crate::{context::LintContext, rule::Rule, AstNode};

#[derive(Debug, Error, Diagnostic)]
#[error("eslint-plugin-next(inline-script-id): `next/script` components with inline content mus
    
fn test() {
    use crate::tester::Tester;

    let pass = vec![
        r#"import Script from 'next/script';
			
			      export default function TestPage() {
			        return (
			          <Script id="test-script">
			            {`console.log('Hello world');`}
			          </Script>
			        )
			      }"#,
        r#"import Script from 'next/script';
			
			      export default function TestPage() {
			        return (
			          <Script
			            id="test-script"
			            dangerouslySetInnerHTML={{
			              __html: `console.log('Hello world');`
			            }}
			          />
			        )
			      }"#,
        r#"import Script from 'next/script';
			
			      export default function TestPage() {
			        return (
			          <Script src="https://example.com" />
			        )
			      }"#,
        r#"import MyScript from 'next/script';
			
			      export default function TestPage() {
			        return (
			          <MyScript id="test-script">
			            {`console.log('Hello world');`}
			          </MyScript>
			        )
			      }"#,
        r#"import MyScript from 'next/script';
			
			      export default function TestPage() {
			        return (
			          <MyScript
			            id="test-script"
			            dangerouslySetInnerHTML={{
			              __html: `console.log('Hello world');`
			            }}
			          />
			        )
			      }"#,
        r#"import Script from 'next/script';
			
			      export default function TestPage() {
			        return (
			          <Script {...{ strategy: "lazyOnload" }} id={"test-script"}>
			            {`console.log('Hello world');`}
			          </Script>
			        )
			      }"#,
        r#"import Script from 'next/script';
			
			      export default function TestPage() {
			        return (
			          <Script {...{ strategy: "lazyOnload", id: "test-script" }}>
			            {`console.log('Hello world');`}
			          </Script>
			        )
			      }"#,
        r#"import Script from 'next/script';
			      const spread = { strategy: "lazyOnload" }
			      export default function TestPage() {
			        return (
			          <Script {...spread} id={"test-script"}>
			            {`console.log('Hello world');`}
			          </Script>
			        )
			      }"#,
    ];

    let fail = vec![
        r"import Script from 'next/script';
			
			        export default function TestPage() {
			          return (
			            <Script>
			              {`console.log('Hello world');`}
			            </Script>
			          )
			        }",
        r"import Script from 'next/script';
			
			        export default function TestPage() {
			          return (
			            <Script
			              dangerouslySetInnerHTML={{
			                __html: `console.log('Hello world');`
			              }}
			            />
			          )
			        }",
        r"import MyScript from 'next/script';
			
			        export default function TestPage() {
			          return (
			            <MyScript>
			              {`console.log('Hello world');`}
			            </MyScript>
			          )
			        }",
        r"import MyScript from 'next/script';
			
			        export default function TestPage() {
			          return (
			            <MyScript
			              dangerouslySetInnerHTML={{
			                __html: `console.log('Hello world');`
			              }}
			            />
			          )
			        }",
    ];

    Tester::new(InlineScriptId::NAME, pass, fail).with_nextjs_plugin(true).test_and_snapshot();
}