From df6b019139e6f4eff97d1772ba31e092c258b568 Mon Sep 17 00:00:00 2001 From: SoonIter Date: Tue, 9 Jul 2024 20:36:25 +0800 Subject: [PATCH 1/6] chore: enable test --- __test__/__snapshots__/index.spec.ts.snap | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/__test__/__snapshots__/index.spec.ts.snap b/__test__/__snapshots__/index.spec.ts.snap index dd36f43..a6f6a30 100644 --- a/__test__/__snapshots__/index.spec.ts.snap +++ b/__test__/__snapshots__/index.spec.ts.snap @@ -102,7 +102,7 @@ export default MDXContent; exports[`compile > should render container title in mdx correctly 1`] = ` "

- Container Title# + Container Title #

Custom Title
@@ -141,7 +141,7 @@ function _createMdxContent(props) { p: \\"p\\", code: \\"code\\" }, _provideComponents(), props.components); - return <><_components.h2 id=\\"custom-title\\">{\\"Container Title\\"}<_components.a className=\\"header-anchor\\" aria-hidden=\\"true\\" href=\\"#custom-title\\">{\\"#\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"\\\\nThis is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"\\\\nThis is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}; + return <><_components.h2 id=\\"custom-title\\">{\\"Container Title \\"}<_components.a className=\\"header-anchor\\" aria-hidden=\\"true\\" href=\\"#custom-title\\">{\\"#\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"\\\\nThis is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"\\\\nThis is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}; } function MDXContent(props = {}) { const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); diff --git a/package.json b/package.json index e556306..8eacc04 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "build": "napi build --cargo-cwd crates/binding --platform --release", "build:debug": "napi build --cargo-cwd crates/binding --platform", "prepublishOnly": "napi prepublish -t npm", - "test": "echo Enable test when fix CI, GLIB3.22 not found", + "test": "vitest run", "test:local": "vitest run", "test:watch": "vitest dev", "universal": "napi universal", From d000ebd47ded6ec591c985e5dfe9b28dbb0f15dd Mon Sep 17 00:00:00 2001 From: SoonIter Date: Tue, 9 Jul 2024 20:51:50 +0800 Subject: [PATCH 2/6] chore(infra): fix mac --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 259780d..465af9a 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -170,7 +170,7 @@ jobs: matrix: settings: - host: macos-latest - target: "x86_64-apple-darwin" + target: "aarch64-apple-darwin" - host: windows-latest target: "x86_64-pc-windows-msvc" node: ["16", "18"] From 9840a7ab8e5eaaf0cac7b3fa3238f61c8ad854f0 Mon Sep 17 00:00:00 2001 From: SoonIter Date: Tue, 9 Jul 2024 20:58:05 +0800 Subject: [PATCH 3/6] chore(infra): fix win --- __test__/__snapshots__/index.spec.ts.snap | 10 ++--- __test__/index.spec.ts | 50 +++++++++++++++++------ __test__/tsconfig.json | 14 +++++++ package.json | 3 +- pnpm-lock.yaml | 25 +++++++----- 5 files changed, 73 insertions(+), 29 deletions(-) create mode 100644 __test__/tsconfig.json diff --git a/__test__/__snapshots__/index.spec.ts.snap b/__test__/__snapshots__/index.spec.ts.snap index a6f6a30..9363d05 100644 --- a/__test__/__snapshots__/index.spec.ts.snap +++ b/__test__/__snapshots__/index.spec.ts.snap @@ -39,7 +39,7 @@ function _createMdxContent(props) { li: \\"li\\", pre: \\"pre\\" }, _provideComponents(), props.components); - return <><_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"First line \\"}<_components.code>{\\"block\\"}{\\"\\\\n\\"}<_components.p>{\\"Second line \\"}<_components.code>{\\"block2\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\">{\\"\\\\n\\"}<_components.ul>{\\"\\\\n\\"}<_components.li>{\\"List item 1 \\"}<_components.code>{\\"block\\"}{\\"。\\"}{\\"\\\\n\\"}<_components.li>{\\"List item 2 \\"}<_components.code>{\\"block2\\"}{\\"。\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\">{\\"\\\\n\\"}<_components.p>{\\"Some code:\\"}{\\"\\\\n\\"}<_components.pre><_components.code className=\\"language-ts\\">{\\"console.log('hello world');\\\\n\\"}{\\"\\\\n\\"}; + return <><_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"First line \\"}<_components.code>{\\"block\\"}{\\"\\"}<_components.p>{\\"Second line \\"}<_components.code>{\\"block2\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\">{\\"\\"}<_components.ul>{\\"\\"}<_components.li>{\\"List item 1 \\"}<_components.code>{\\"block\\"}{\\"。\\"}{\\"\\"}<_components.li>{\\"List item 2 \\"}<_components.code>{\\"block2\\"}{\\"。\\"}{\\"\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\">{\\"\\"}<_components.p>{\\"Some code:\\"}{\\"\\"}<_components.pre><_components.code className=\\"language-ts\\">{\\"console.log('hello world');\\"}{\\"\\"}; } function MDXContent(props = {}) { const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); @@ -90,7 +90,7 @@ function _createMdxContent(props) { p: \\"p\\", code: \\"code\\" }, _provideComponents(), props.components); - return <><_components.h2 id=\\"custom-title\\">{\\"Container Title\\"}<_components.a className=\\"header-anchor\\" aria-hidden=\\"true\\" href=\\"#custom-title\\">{\\"#\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}; + return <><_components.h2 id=\\"custom-title\\">{\\"Container Title\\"}<_components.a className=\\"header-anchor\\" aria-hidden=\\"true\\" href=\\"#custom-title\\">{\\"#\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}; } function MDXContent(props = {}) { const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); @@ -141,7 +141,7 @@ function _createMdxContent(props) { p: \\"p\\", code: \\"code\\" }, _provideComponents(), props.components); - return <><_components.h2 id=\\"custom-title\\">{\\"Container Title \\"}<_components.a className=\\"header-anchor\\" aria-hidden=\\"true\\" href=\\"#custom-title\\">{\\"#\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"\\\\nThis is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"\\\\nThis is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\\\n\\"}; + return <><_components.h2 id=\\"custom-title\\">{\\"Container Title \\"}<_components.a className=\\"header-anchor\\" aria-hidden=\\"true\\" href=\\"#custom-title\\">{\\"#\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}; } function MDXContent(props = {}) { const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); @@ -199,7 +199,7 @@ function _createMdxContent(props) { p: \\"p\\", code: \\"code\\" }, _provideComponents(), props.components); - return <><_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"tip\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive info\\"><_components.div className=\\"rspress-directive-title\\">{\\"INFO\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive note\\"><_components.div className=\\"rspress-directive-title\\">{\\"NOTE\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive warning\\"><_components.div className=\\"rspress-directive-title\\">{\\"WARNING\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"warning\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive danger\\"><_components.div className=\\"rspress-directive-title\\">{\\"DANGER\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive caution\\"><_components.div className=\\"rspress-directive-title\\">{\\"CAUTION\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\\\n\\"}; + return <><_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"tip\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive info\\"><_components.div className=\\"rspress-directive-title\\">{\\"INFO\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive note\\"><_components.div className=\\"rspress-directive-title\\">{\\"NOTE\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive warning\\"><_components.div className=\\"rspress-directive-title\\">{\\"WARNING\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"warning\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive danger\\"><_components.div className=\\"rspress-directive-title\\">{\\"DANGER\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive caution\\"><_components.div className=\\"rspress-directive-title\\">{\\"CAUTION\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\"}; } function MDXContent(props = {}) { const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); @@ -263,7 +263,7 @@ function _createMdxContent(props) { p: \\"p\\", code: \\"code\\" }, _provideComponents(), props.components); - return <><_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"tip\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"tip\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive info\\"><_components.div className=\\"rspress-directive-title\\">{\\"INFO\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive note\\"><_components.div className=\\"rspress-directive-title\\">{\\"NOTE\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive warning\\"><_components.div className=\\"rspress-directive-title\\">{\\"WARNING\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"warning\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive danger\\"><_components.div className=\\"rspress-directive-title\\">{\\"DANGER\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\\\n\\"}{\\"\\\\n\\"}<_components.div className=\\"rspress-directive caution\\"><_components.div className=\\"rspress-directive-title\\">{\\"CAUTION\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\\\n\\"}; + return <><_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"tip\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"tip\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive info\\"><_components.div className=\\"rspress-directive-title\\">{\\"INFO\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive note\\"><_components.div className=\\"rspress-directive-title\\">{\\"NOTE\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive warning\\"><_components.div className=\\"rspress-directive-title\\">{\\"WARNING\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"warning\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive danger\\"><_components.div className=\\"rspress-directive-title\\">{\\"DANGER\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive caution\\"><_components.div className=\\"rspress-directive-title\\">{\\"CAUTION\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\"}; } function MDXContent(props = {}) { const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); diff --git a/__test__/index.spec.ts b/__test__/index.spec.ts index bee3a74..4283a4f 100644 --- a/__test__/index.spec.ts +++ b/__test__/index.spec.ts @@ -1,27 +1,53 @@ import { readFileSync } from "fs"; import { describe, test, expect } from "vitest"; import path from "path"; +// @ts-ignore TODO: add types for pretter import prettier from "prettier"; -import { compile } from "../index.js"; +import { compile, type CompileOptions } from "../index.js"; + + +const formatHTML = (html: string) => { + return prettier.format(html, { parser: "html" }) +}; + +const formatResult = async (result: string): Promise => { + // TODO: add prettier for tsx + // For win ci + return result.replaceAll('\\r\\n', '').replaceAll('\\n', ''); +}; + +const testCompile = async (options: CompileOptions) => { + let { code: result, html } = await compile(options); + + const [formattedResult, formattedHtml] = await Promise.all([ + formatResult(result), + formatHTML(html), + ]); + + return { + code: formattedResult, + html: formattedHtml, + }; +}; + -const formatHTML = (html: string) => prettier.format(html, { parser: "html" }); describe("compile", () => { test("should render container type correctly", async (t) => { - let { code: result, html } = await compile({ + let { code: result, html } = await testCompile({ value: readFileSync(path.join(__dirname, "./container-type.md"), "utf8"), filepath: "xxx.mdx", development: true, root: "xxx", }); - expect(formatHTML(html)).toMatchSnapshot(); + expect((html)).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); test("should render container type with space correctly", async (t) => { - let { code: result, html } = await compile({ + let { code: result, html } = await testCompile({ value: readFileSync( path.join(__dirname, "./container-type-with-space.md"), "utf8" @@ -31,12 +57,12 @@ describe("compile", () => { root: "xxx", }); - expect(formatHTML(html)).toMatchSnapshot(); + expect((html)).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); test("should render container content correctly", async (t) => { - let { code: result, html } = await compile({ + let { code: result, html } = await testCompile({ value: readFileSync( path.join(__dirname, "./container-content.md"), "utf8" @@ -46,12 +72,12 @@ describe("compile", () => { root: "xxx", }); - expect(formatHTML(html)).toMatchSnapshot(); + expect((html)).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); test("should render container title in mdx correctly", async (t) => { - let { code: result, html } = await compile({ + let { code: result, html } = await testCompile({ value: readFileSync( path.join(__dirname, "./container-title.mdx"), "utf8" @@ -61,19 +87,19 @@ describe("compile", () => { root: "xxx", }); - expect(formatHTML(html)).toMatchSnapshot(); + expect((html)).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); test("should render container title in md correctly", async (t) => { - let { code: result, html } = await compile({ + let { code: result, html } = await testCompile({ value: readFileSync(path.join(__dirname, "./container-title.md"), "utf8"), filepath: "xxx.md", development: true, root: "xxx", }); - expect(formatHTML(html)).toMatchSnapshot(); + expect((html)).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); }); diff --git a/__test__/tsconfig.json b/__test__/tsconfig.json new file mode 100644 index 0000000..db02135 --- /dev/null +++ b/__test__/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ESNext", + "lib": ["esnext"], + "module": "ESNext", + "moduleResolution": "Bundler", + "types": ["node"], + "strict": true, + "declaration": true, + "noEmit": true, + "esModuleInterop": true, + "skipLibCheck": true + } +} diff --git a/package.json b/package.json index 8eacc04..bb18252 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,8 @@ "prettier": "^2.8.7", "typescript": "^5.0.2", "vite": "^4.4.11", - "vitest": "^0.29.7" + "vitest": "^0.29.7", + "@types/node": "16.18.101" }, "engines": { "node": ">= 10" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 06cebce..cfc80c6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -11,6 +11,9 @@ devDependencies: '@napi-rs/cli': specifier: ^2.14.8 version: 2.14.8 + '@types/node': + specifier: 16.18.101 + version: 16.18.101 benchmark: specifier: ^2.1.4 version: 2.1.4 @@ -31,7 +34,7 @@ devDependencies: version: 5.0.2 vite: specifier: ^4.4.11 - version: 4.4.11(@types/node@18.15.5) + version: 4.4.11(@types/node@16.18.101) vitest: specifier: ^0.29.7 version: 0.29.7 @@ -348,8 +351,8 @@ packages: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node@18.15.5: - resolution: {integrity: sha512-Ark2WDjjZO7GmvsyFFf81MXuGTA/d6oP38anyxWOL6EREyBKAxKoFHwBhaZxCfLRLpO8JgVXwqOwSwa7jRcjew==} + /@types/node@16.18.101: + resolution: {integrity: sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==} dev: true /@types/normalize-package-data@2.4.1: @@ -2465,7 +2468,7 @@ packages: vfile-message: 3.1.4 dev: true - /vite-node@0.29.7(@types/node@18.15.5): + /vite-node@0.29.7(@types/node@16.18.101): resolution: {integrity: sha512-PakCZLvz37yFfUPWBnLa1OYHPCGm5v4pmRrTcFN4V/N/T3I6tyP3z07S//9w+DdeL7vVd0VSeyMZuAh+449ZWw==} engines: {node: '>=v14.16.0'} hasBin: true @@ -2475,7 +2478,7 @@ packages: mlly: 1.2.0 pathe: 1.1.0 picocolors: 1.0.0 - vite: 4.4.11(@types/node@18.15.5) + vite: 4.4.11(@types/node@16.18.101) transitivePeerDependencies: - '@types/node' - less @@ -2487,7 +2490,7 @@ packages: - terser dev: true - /vite@4.4.11(@types/node@18.15.5): + /vite@4.4.11(@types/node@16.18.101): resolution: {integrity: sha512-ksNZJlkcU9b0lBwAGZGGaZHCMqHsc8OpgtoYhsQ4/I2v5cnpmmmqe5pM4nv/4Hn6G/2GhTdj0DhZh2e+Er1q5A==} engines: {node: ^14.18.0 || >=16.0.0} hasBin: true @@ -2515,7 +2518,7 @@ packages: terser: optional: true dependencies: - '@types/node': 18.15.5 + '@types/node': 16.18.101 esbuild: 0.18.20 postcss: 8.4.31 rollup: 3.29.4 @@ -2553,7 +2556,7 @@ packages: dependencies: '@types/chai': 4.3.4 '@types/chai-subset': 1.3.3 - '@types/node': 18.15.5 + '@types/node': 16.18.101 '@vitest/expect': 0.29.7 '@vitest/runner': 0.29.7 '@vitest/spy': 0.29.7 @@ -2572,8 +2575,8 @@ packages: tinybench: 2.4.0 tinypool: 0.4.0 tinyspy: 1.1.1 - vite: 4.4.11(@types/node@18.15.5) - vite-node: 0.29.7(@types/node@18.15.5) + vite: 4.4.11(@types/node@16.18.101) + vite-node: 0.29.7(@types/node@16.18.101) why-is-node-running: 2.2.2 transitivePeerDependencies: - less From 41b59c99d7ff194ecc681643d74becf94f21aee0 Mon Sep 17 00:00:00 2001 From: SoonIter Date: Tue, 9 Jul 2024 21:03:20 +0800 Subject: [PATCH 4/6] chore(infra): add prettier for format snapshot --- __test__/__snapshots__/index.spec.ts.snap | 571 ++++++++++++++++++++-- __test__/index.spec.ts | 14 +- 2 files changed, 531 insertions(+), 54 deletions(-) diff --git a/__test__/__snapshots__/index.spec.ts.snap b/__test__/__snapshots__/index.spec.ts.snap index 9363d05..75c3bb1 100644 --- a/__test__/__snapshots__/index.spec.ts.snap +++ b/__test__/__snapshots__/index.spec.ts.snap @@ -31,19 +31,95 @@ exports[`compile > should render container content correctly 1`] = ` exports[`compile > should render container content correctly 2`] = ` "import { useMDXComponents as _provideComponents } from \\"@mdx-js/react\\"; function _createMdxContent(props) { - const _components = Object.assign({ - div: \\"div\\", - p: \\"p\\", - code: \\"code\\", - ul: \\"ul\\", - li: \\"li\\", - pre: \\"pre\\" - }, _provideComponents(), props.components); - return <><_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"First line \\"}<_components.code>{\\"block\\"}{\\"\\"}<_components.p>{\\"Second line \\"}<_components.code>{\\"block2\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\">{\\"\\"}<_components.ul>{\\"\\"}<_components.li>{\\"List item 1 \\"}<_components.code>{\\"block\\"}{\\"。\\"}{\\"\\"}<_components.li>{\\"List item 2 \\"}<_components.code>{\\"block2\\"}{\\"。\\"}{\\"\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\">{\\"\\"}<_components.p>{\\"Some code:\\"}{\\"\\"}<_components.pre><_components.code className=\\"language-ts\\">{\\"console.log('hello world');\\"}{\\"\\"}; + const _components = Object.assign( + { + div: \\"div\\", + p: \\"p\\", + code: \\"code\\", + ul: \\"ul\\", + li: \\"li\\", + pre: \\"pre\\", + }, + _provideComponents(), + props.components + ); + return ( + <> + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"TIP\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"First line \\"} + <_components.code>{\\"block\\"} + + {\\"\\"} + <_components.p> + {\\"Second line \\"} + <_components.code>{\\"block2\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"TIP\\"} + + <_components.div className=\\"rspress-directive-content\\"> + {\\"\\"} + <_components.ul> + {\\"\\"} + <_components.li> + {\\"List item 1 \\"} + <_components.code>{\\"block\\"} + {\\"。\\"} + + {\\"\\"} + <_components.li> + {\\"List item 2 \\"} + <_components.code>{\\"block2\\"} + {\\"。\\"} + + {\\"\\"} + + {\\"\\"} + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"TIP\\"} + + <_components.div className=\\"rspress-directive-content\\"> + {\\"\\"} + <_components.p>{\\"Some code:\\"} + {\\"\\"} + <_components.pre> + <_components.code className=\\"language-ts\\"> + {\\"console.log('hello world');\\"} + + + {\\"\\"} + + + + ); } function MDXContent(props = {}) { - const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); - return MDXLayout ? <_createMdxContent {...props}/> : _createMdxContent(props); + const { wrapper: MDXLayout } = Object.assign( + {}, + _provideComponents(), + props.components + ); + return MDXLayout ? ( + + <_createMdxContent {...props} /> + + ) : ( + _createMdxContent(props) + ); } export default MDXContent; " @@ -83,18 +159,105 @@ exports[`compile > should render container title in md correctly 1`] = ` exports[`compile > should render container title in md correctly 2`] = ` "import { useMDXComponents as _provideComponents } from \\"@mdx-js/react\\"; function _createMdxContent(props) { - const _components = Object.assign({ - h2: \\"h2\\", - a: \\"a\\", - div: \\"div\\", - p: \\"p\\", - code: \\"code\\" - }, _provideComponents(), props.components); - return <><_components.h2 id=\\"custom-title\\">{\\"Container Title\\"}<_components.a className=\\"header-anchor\\" aria-hidden=\\"true\\" href=\\"#custom-title\\">{\\"#\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}; + const _components = Object.assign( + { + h2: \\"h2\\", + a: \\"a\\", + div: \\"div\\", + p: \\"p\\", + code: \\"code\\", + }, + _provideComponents(), + props.components + ); + return ( + <> + <_components.h2 id=\\"custom-title\\"> + {\\"Container Title\\"} + <_components.a + className=\\"header-anchor\\" + aria-hidden=\\"true\\" + href=\\"#custom-title\\" + > + {\\"#\\"} + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"Custom Title\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of \\"} + <_components.code>{\\"Custom Title\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"Custom Title\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of \\"} + <_components.code>{\\"Custom Title\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"Custom Title\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of \\"} + <_components.code>{\\"Custom Title\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"Custom Title\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of \\"} + <_components.code>{\\"Custom Title\\"} + {\\"\\"} + + + + + ); } function MDXContent(props = {}) { - const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); - return MDXLayout ? <_createMdxContent {...props}/> : _createMdxContent(props); + const { wrapper: MDXLayout } = Object.assign( + {}, + _provideComponents(), + props.components + ); + return MDXLayout ? ( + + <_createMdxContent {...props} /> + + ) : ( + _createMdxContent(props) + ); } export default MDXContent; " @@ -134,18 +297,105 @@ exports[`compile > should render container title in mdx correctly 1`] = ` exports[`compile > should render container title in mdx correctly 2`] = ` "import { useMDXComponents as _provideComponents } from \\"@mdx-js/react\\"; function _createMdxContent(props) { - const _components = Object.assign({ - h2: \\"h2\\", - a: \\"a\\", - div: \\"div\\", - p: \\"p\\", - code: \\"code\\" - }, _provideComponents(), props.components); - return <><_components.h2 id=\\"custom-title\\">{\\"Container Title \\"}<_components.a className=\\"header-anchor\\" aria-hidden=\\"true\\" href=\\"#custom-title\\">{\\"#\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"Custom Title\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of \\"}<_components.code>{\\"Custom Title\\"}{\\"\\"}; + const _components = Object.assign( + { + h2: \\"h2\\", + a: \\"a\\", + div: \\"div\\", + p: \\"p\\", + code: \\"code\\", + }, + _provideComponents(), + props.components + ); + return ( + <> + <_components.h2 id=\\"custom-title\\"> + {\\"Container Title \\"} + <_components.a + className=\\"header-anchor\\" + aria-hidden=\\"true\\" + href=\\"#custom-title\\" + > + {\\"#\\"} + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"Custom Title\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of \\"} + <_components.code>{\\"Custom Title\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"Custom Title\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of \\"} + <_components.code>{\\"Custom Title\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"Custom Title\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of \\"} + <_components.code>{\\"Custom Title\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"Custom Title\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of \\"} + <_components.code>{\\"Custom Title\\"} + {\\"\\"} + + + + + ); } function MDXContent(props = {}) { - const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); - return MDXLayout ? <_createMdxContent {...props}/> : _createMdxContent(props); + const { wrapper: MDXLayout } = Object.assign( + {}, + _provideComponents(), + props.components + ); + return MDXLayout ? ( + + <_createMdxContent {...props} /> + + ) : ( + _createMdxContent(props) + ); } export default MDXContent; " @@ -194,16 +444,122 @@ exports[`compile > should render container type correctly 1`] = ` exports[`compile > should render container type correctly 2`] = ` "import { useMDXComponents as _provideComponents } from \\"@mdx-js/react\\"; function _createMdxContent(props) { - const _components = Object.assign({ - div: \\"div\\", - p: \\"p\\", - code: \\"code\\" - }, _provideComponents(), props.components); - return <><_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"tip\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive info\\"><_components.div className=\\"rspress-directive-title\\">{\\"INFO\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive note\\"><_components.div className=\\"rspress-directive-title\\">{\\"NOTE\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive warning\\"><_components.div className=\\"rspress-directive-title\\">{\\"WARNING\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"warning\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive danger\\"><_components.div className=\\"rspress-directive-title\\">{\\"DANGER\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive caution\\"><_components.div className=\\"rspress-directive-title\\">{\\"CAUTION\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\"}; + const _components = Object.assign( + { + div: \\"div\\", + p: \\"p\\", + code: \\"code\\", + }, + _provideComponents(), + props.components + ); + return ( + <> + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"TIP\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"tip\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive info\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"INFO\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"info\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive note\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"NOTE\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"info\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive warning\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"WARNING\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"warning\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive danger\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"DANGER\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"danger\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive caution\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"CAUTION\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"danger\\"} + {\\"\\"} + + + + + ); } function MDXContent(props = {}) { - const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); - return MDXLayout ? <_createMdxContent {...props}/> : _createMdxContent(props); + const { wrapper: MDXLayout } = Object.assign( + {}, + _provideComponents(), + props.components + ); + return MDXLayout ? ( + + <_createMdxContent {...props} /> + + ) : ( + _createMdxContent(props) + ); } export default MDXContent; " @@ -258,16 +614,137 @@ exports[`compile > should render container type with space correctly 1`] = ` exports[`compile > should render container type with space correctly 2`] = ` "import { useMDXComponents as _provideComponents } from \\"@mdx-js/react\\"; function _createMdxContent(props) { - const _components = Object.assign({ - div: \\"div\\", - p: \\"p\\", - code: \\"code\\" - }, _provideComponents(), props.components); - return <><_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"tip\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive tip\\"><_components.div className=\\"rspress-directive-title\\">{\\"TIP\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"tip\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive info\\"><_components.div className=\\"rspress-directive-title\\">{\\"INFO\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive note\\"><_components.div className=\\"rspress-directive-title\\">{\\"NOTE\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"info\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive warning\\"><_components.div className=\\"rspress-directive-title\\">{\\"WARNING\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"warning\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive danger\\"><_components.div className=\\"rspress-directive-title\\">{\\"DANGER\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\"}{\\"\\"}<_components.div className=\\"rspress-directive caution\\"><_components.div className=\\"rspress-directive-title\\">{\\"CAUTION\\"}<_components.div className=\\"rspress-directive-content\\"><_components.p>{\\"This is a \\"}<_components.code>{\\"block\\"}{\\" of type \\"}<_components.code>{\\"danger\\"}{\\"\\"}; + const _components = Object.assign( + { + div: \\"div\\", + p: \\"p\\", + code: \\"code\\", + }, + _provideComponents(), + props.components + ); + return ( + <> + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"TIP\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"tip\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive tip\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"TIP\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"tip\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive info\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"INFO\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"info\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive note\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"NOTE\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"info\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive warning\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"WARNING\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"warning\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive danger\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"DANGER\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"danger\\"} + {\\"\\"} + + + + {\\"\\"} + <_components.div className=\\"rspress-directive caution\\"> + <_components.div className=\\"rspress-directive-title\\"> + {\\"CAUTION\\"} + + <_components.div className=\\"rspress-directive-content\\"> + <_components.p> + {\\"This is a \\"} + <_components.code>{\\"block\\"} + {\\" of type \\"} + <_components.code>{\\"danger\\"} + {\\"\\"} + + + + + ); } function MDXContent(props = {}) { - const { wrapper: MDXLayout } = Object.assign({}, _provideComponents(), props.components); - return MDXLayout ? <_createMdxContent {...props}/> : _createMdxContent(props); + const { wrapper: MDXLayout } = Object.assign( + {}, + _provideComponents(), + props.components + ); + return MDXLayout ? ( + + <_createMdxContent {...props} /> + + ) : ( + _createMdxContent(props) + ); } export default MDXContent; " diff --git a/__test__/index.spec.ts b/__test__/index.spec.ts index 4283a4f..42cd0fe 100644 --- a/__test__/index.spec.ts +++ b/__test__/index.spec.ts @@ -12,9 +12,9 @@ const formatHTML = (html: string) => { }; const formatResult = async (result: string): Promise => { - // TODO: add prettier for tsx // For win ci - return result.replaceAll('\\r\\n', '').replaceAll('\\n', ''); + const replacedResult = result.replaceAll('\\r\\n', '').replaceAll('\\n', ''); + return prettier.format(replacedResult, { parser: "babel-ts" }) }; const testCompile = async (options: CompileOptions) => { @@ -42,7 +42,7 @@ describe("compile", () => { root: "xxx", }); - expect((html)).toMatchSnapshot(); + expect(html).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); @@ -57,7 +57,7 @@ describe("compile", () => { root: "xxx", }); - expect((html)).toMatchSnapshot(); + expect(html).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); @@ -72,7 +72,7 @@ describe("compile", () => { root: "xxx", }); - expect((html)).toMatchSnapshot(); + expect(html).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); @@ -87,7 +87,7 @@ describe("compile", () => { root: "xxx", }); - expect((html)).toMatchSnapshot(); + expect(html).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); @@ -99,7 +99,7 @@ describe("compile", () => { root: "xxx", }); - expect((html)).toMatchSnapshot(); + expect(html).toMatchSnapshot(); expect(result).toMatchSnapshot(); }); }); From dc9ae8a7464fc7733ce8dccf9ba0694428d3aa30 Mon Sep 17 00:00:00 2001 From: SoonIter Date: Tue, 9 Jul 2024 21:16:25 +0800 Subject: [PATCH 5/6] chore(infra): test --- __test__/index.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__test__/index.spec.ts b/__test__/index.spec.ts index 42cd0fe..c4eca6f 100644 --- a/__test__/index.spec.ts +++ b/__test__/index.spec.ts @@ -8,12 +8,12 @@ import { compile, type CompileOptions } from "../index.js"; const formatHTML = (html: string) => { - return prettier.format(html, { parser: "html" }) + return prettier.format(html.toString(), { parser: "html" }) }; const formatResult = async (result: string): Promise => { // For win ci - const replacedResult = result.replaceAll('\\r\\n', '').replaceAll('\\n', ''); + const replacedResult = result.toString().replaceAll('\\r\\n', '').replaceAll('\\n', ''); return prettier.format(replacedResult, { parser: "babel-ts" }) }; From c945b0aa05d89d84945f1fa59d48196ea6ae96f5 Mon Sep 17 00:00:00 2001 From: SoonIter Date: Wed, 10 Jul 2024 10:30:17 +0800 Subject: [PATCH 6/6] chore(infra): test --- __test__/index.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/__test__/index.spec.ts b/__test__/index.spec.ts index c4eca6f..5e0e54f 100644 --- a/__test__/index.spec.ts +++ b/__test__/index.spec.ts @@ -8,12 +8,12 @@ import { compile, type CompileOptions } from "../index.js"; const formatHTML = (html: string) => { - return prettier.format(html.toString(), { parser: "html" }) + return prettier.format(html, { parser: "html" }) }; const formatResult = async (result: string): Promise => { // For win ci - const replacedResult = result.toString().replaceAll('\\r\\n', '').replaceAll('\\n', ''); + const replacedResult = result.replace(/\\r\\n/g, '').replace(/\\n/g, ''); return prettier.format(replacedResult, { parser: "babel-ts" }) };