@@ -23,7 +23,7 @@ describe('createSvelteModuleLoader', () => {
2323 const svelteSys = < any > 'svelteSys' ;
2424 sinon . stub ( svS , 'createSvelteSys' ) . returns ( svelteSys ) ;
2525
26- const compilerOptions : ts . CompilerOptions = { strict : true } ;
26+ const compilerOptions : ts . CompilerOptions = { strict : true , paths : { '/@/*' : [ ] } } ;
2727 const moduleResolver = createSvelteModuleLoader ( getSvelteSnapshotStub , compilerOptions ) ;
2828
2929 return {
@@ -55,6 +55,26 @@ describe('createSvelteModuleLoader', () => {
5555 ] ) ;
5656 } ) ;
5757
58+ it ( 'uses tsSys for normal files part of TS aliases' , async ( ) => {
59+ const resolvedModule : ts . ResolvedModuleFull = {
60+ extension : ts . Extension . Ts ,
61+ resolvedFileName : 'filename.ts' ,
62+ } ;
63+ const { resolveStub, moduleResolver, compilerOptions } = setup ( resolvedModule ) ;
64+ const result = moduleResolver . resolveModuleNames (
65+ [ '/@/normal' ] ,
66+ 'C:/somerepo/somefile.svelte' ,
67+ ) ;
68+
69+ assert . deepStrictEqual ( result , [ resolvedModule ] ) ;
70+ assert . deepStrictEqual ( resolveStub . getCall ( 0 ) . args , [
71+ '/@/normal' ,
72+ 'C:/somerepo/somefile.svelte' ,
73+ compilerOptions ,
74+ ts . sys ,
75+ ] ) ;
76+ } ) ;
77+
5878 it ( 'uses svelte module loader for virtual svelte files' , async ( ) => {
5979 const resolvedModule : ts . ResolvedModuleFull = {
6080 extension : ts . Extension . Ts ,
@@ -87,6 +107,38 @@ describe('createSvelteModuleLoader', () => {
87107 assert . deepStrictEqual ( getSvelteSnapshotStub . getCall ( 0 ) . args , [ 'filename.svelte' ] ) ;
88108 } ) ;
89109
110+ it ( 'uses svelte module loader for virtual svelte files with TS path aliases' , async ( ) => {
111+ const resolvedModule : ts . ResolvedModuleFull = {
112+ extension : ts . Extension . Ts ,
113+ resolvedFileName : 'filename.svelte.ts' ,
114+ } ;
115+ const {
116+ resolveStub,
117+ svelteSys,
118+ moduleResolver,
119+ compilerOptions,
120+ getSvelteSnapshotStub,
121+ } = setup ( resolvedModule ) ;
122+ const result = moduleResolver . resolveModuleNames (
123+ [ '/@/svelte.svelte' ] ,
124+ 'C:/somerepo/somefile.svelte' ,
125+ ) ;
126+
127+ assert . deepStrictEqual ( result , [
128+ < ts . ResolvedModuleFull > {
129+ extension : ts . Extension . Jsx ,
130+ resolvedFileName : 'filename.svelte' ,
131+ } ,
132+ ] ) ;
133+ assert . deepStrictEqual ( resolveStub . getCall ( 0 ) . args , [
134+ '/@/svelte.svelte' ,
135+ 'C:/somerepo/somefile.svelte' ,
136+ compilerOptions ,
137+ svelteSys ,
138+ ] ) ;
139+ assert . deepStrictEqual ( getSvelteSnapshotStub . getCall ( 0 ) . args , [ 'filename.svelte' ] ) ;
140+ } ) ;
141+
90142 it ( 'uses cache if module was already resolved before' , async ( ) => {
91143 const resolvedModule : ts . ResolvedModuleFull = {
92144 extension : ts . Extension . Ts ,
0 commit comments