@@ -9,7 +9,7 @@ describe("injector", () => {
99 test ( "appends a script setup block to simple code" , ( ) => {
1010 const code = `console.log("Hello");` ;
1111 const keys = [ "name" , "email" ] ;
12- const result = injector ( code , "test.js" , keys ) ;
12+ const result = injector ( code , "test.js" , keys , "__aliasedFusionPath__" , false ) ;
1313 const expected = `
1414console.log("Hello");
1515<script setup>
@@ -29,7 +29,7 @@ useHotFusion(__fusionData);
2929<p>Test paragraph</p>
3030 ` ;
3131 const keys = [ "user" , "age" ] ;
32- const result = injector ( code , "test.js" , keys ) ;
32+ const result = injector ( code , "test.js" , keys , "__aliasedFusionPath__" , false ) ;
3333 const expected = `
3434<div>Hello World</div>
3535<p>Test paragraph</p>
@@ -47,7 +47,7 @@ useHotFusion(__fusionData);
4747 test ( "handles empty code by injecting only the script setup block" , ( ) => {
4848 const code = `` ;
4949 const keys = [ "foo" ] ;
50- const result = injector ( code , "test.js" , keys ) ;
50+ const result = injector ( code , "test.js" , keys , "__aliasedFusionPath__" , false ) ;
5151 const expected = `
5252<script setup>
5353import { useFusion } from "__aliasedFusionPath__";
@@ -67,7 +67,7 @@ let a = 10;
6767/* User code end */
6868 ` ;
6969 const keys = [ "first" , "last" , "email" ] ;
70- const result = injector ( code , "test.js" , keys ) ;
70+ const result = injector ( code , "test.js" , keys , "__aliasedFusionPath__" , false ) ;
7171 const expected = `
7272/* User code start */
7373let a = 10;
@@ -78,6 +78,42 @@ import useHotFusion from "@fusion/vue/hmr";
7878const __fusionData = useFusion([first, last, email], __props.fusion);
7979const { first: first, last: last, email: email } = __fusionData;
8080useHotFusion(__fusionData);
81+ </script>
82+ ` ;
83+ expect ( result . code ) . toMatchCode ( expected ) ;
84+ } ) ;
85+
86+ test ( "supports custom fusion path" , ( ) => {
87+ const code = `console.log("Hello");` ;
88+ const keys = [ "name" , "email" ] ;
89+ const result = injector ( code , "test.js" , keys , "@custom/fusion-path" , false ) ;
90+ const expected = `
91+ console.log("Hello");
92+ <script setup>
93+ import { useFusion } from "@custom/fusion-path";
94+ import useHotFusion from "@fusion/vue/hmr";
95+ const __fusionData = useFusion([name, email], __props.fusion);
96+ const { name: name, email: email } = __fusionData;
97+ useHotFusion(__fusionData);
98+ </script>
99+ ` ;
100+ expect ( result . code ) . toMatchCode ( expected ) ;
101+ } ) ;
102+
103+ // TypeScript flag doesn't affect this injector much since it generates new code,
104+ // but including a test for completeness
105+ test ( "accepts typescript flag without changing behavior" , ( ) => {
106+ const code = `console.log("Hello");` ;
107+ const keys = [ "name" , "email" ] ;
108+ const result = injector ( code , "test.js" , keys , "__aliasedFusionPath__" , true ) ;
109+ const expected = `
110+ console.log("Hello");
111+ <script setup>
112+ import { useFusion } from "__aliasedFusionPath__";
113+ import useHotFusion from "@fusion/vue/hmr";
114+ const __fusionData = useFusion([name, email], __props.fusion);
115+ const { name: name, email: email } = __fusionData;
116+ useHotFusion(__fusionData);
81117</script>
82118 ` ;
83119 expect ( result . code ) . toMatchCode ( expected ) ;
0 commit comments