diff --git a/src/compiler/pre-transform/codemods/legacy-story.test.ts b/src/compiler/pre-transform/codemods/legacy-story.test.ts
index 07b98c11..4ec8788a 100644
--- a/src/compiler/pre-transform/codemods/legacy-story.test.ts
+++ b/src/compiler/pre-transform/codemods/legacy-story.test.ts
@@ -280,9 +280,7 @@ describe(transformLegacyStory.name, () => {
`);
});
- it("leaves existing Story parameters untouched", async ({
- expect,
- }) => {
+ it('leaves existing Story parameters untouched', async ({ expect }) => {
const code = `
+
+
+ \`}
+ >
+
{"Test"}
+
+ `;
+ const component = await parseAndExtractSvelteNode(code, 'Component');
+
+ expect(
+ print(
+ transformLegacyStory({
+ component,
+ state: { componentIdentifierName: {} },
+ })
+ )
+ ).toMatchInlineSnapshot(`
+ "\\n " } }
+ }}>
+ {"Test"}
+ "
+ `);
+ });
});
diff --git a/src/compiler/pre-transform/codemods/legacy-story.ts b/src/compiler/pre-transform/codemods/legacy-story.ts
index 72802677..fcf77d62 100644
--- a/src/compiler/pre-transform/codemods/legacy-story.ts
+++ b/src/compiler/pre-transform/codemods/legacy-story.ts
@@ -222,8 +222,14 @@ function getSourceValue(attribute: SvelteAST.Attribute): string | undefined {
return;
}
- if (!Array.isArray(value) && value.expression.type === 'Literal') {
- return value.expression.value as string;
+ if (!Array.isArray(value)) {
+ if (value.expression.type === 'Literal' && typeof value.expression.value === 'string') {
+ return value.expression.value;
+ }
+
+ if (value.expression.type === 'TemplateLiteral') {
+ return value.expression.quasis.map((q) => q.value.cooked).join('');
+ }
}
if (value[0].type === 'Text') {
diff --git a/tests/stories/LegacyStory.stories.svelte b/tests/stories/LegacyStory.stories.svelte
index 866e99e0..4c923f6d 100644
--- a/tests/stories/LegacyStory.stories.svelte
+++ b/tests/stories/LegacyStory.stories.svelte
@@ -51,3 +51,13 @@
{'Test'}
+
+
+ `}
+ args={{ rounded: false }}
+>
+ {'Test'}
+