From 97fa0ad42ace1a9ce049056e81790401dfa4b9c3 Mon Sep 17 00:00:00 2001 From: Kasper Peulen Date: Tue, 7 Mar 2023 10:21:16 +0100 Subject: [PATCH] Fix mdx-to-csf codemod blocks imports --- .../transforms/__tests__/mdx-to-csf.test.ts | 24 +++++++++++++++++++ code/lib/codemod/src/transforms/mdx-to-csf.ts | 4 ++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/code/lib/codemod/src/transforms/__tests__/mdx-to-csf.test.ts b/code/lib/codemod/src/transforms/__tests__/mdx-to-csf.test.ts index 23cd271013b9..10a39af030c8 100644 --- a/code/lib/codemod/src/transforms/__tests__/mdx-to-csf.test.ts +++ b/code/lib/codemod/src/transforms/__tests__/mdx-to-csf.test.ts @@ -138,6 +138,30 @@ test('convert correct story nodes', () => { `); }); +test('convert addon-docs imports', () => { + const input = dedent` + import { Meta } from '@storybook/addon-docs'; + import { Story } from '@storybook/addon-docs/blocks'; + + + + Story + `; + + const mdx = jscodeshift({ source: input, path: 'Foobar.stories.mdx' }); + + expect(mdx).toMatchInlineSnapshot(` + import { Meta } from '@storybook/blocks'; + import { Story } from '@storybook/blocks'; + import * as FoobarStories from './Foobar.stories'; + + + + + + `); +}); + test('convert story nodes with spaces', () => { const input = dedent` import { Meta, Story } from '@storybook/addon-docs'; diff --git a/code/lib/codemod/src/transforms/mdx-to-csf.ts b/code/lib/codemod/src/transforms/mdx-to-csf.ts index ce9dcbddd7f8..18092ab9f986 100644 --- a/code/lib/codemod/src/transforms/mdx-to-csf.ts +++ b/code/lib/codemod/src/transforms/mdx-to-csf.ts @@ -75,8 +75,8 @@ export function transform(source: string, baseName: string): [mdx: string, csf: // rewrite addon docs import visit(root, ['mdxjsEsm'], (node: MdxjsEsm) => { node.value = node.value - .replaceAll('@storybook/addon-docs', '@storybook/blocks') - .replaceAll('@storybook/addon-docs/blocks', '@storybook/blocks'); + .replaceAll('@storybook/addon-docs/blocks', '@storybook/blocks') + .replaceAll('@storybook/addon-docs', '@storybook/blocks'); }); const file = getEsmAst(root);