1
1
import { assert , test } from 'vitest' ;
2
2
import { getImportMap } from './import-map' ;
3
3
4
-
5
4
test ( 'should return empty import map when no manifests provided' , async ( ) => {
6
- assert . deepEqual ( getImportMap ( {
7
- manifests : [ ] ,
8
- getScope ( name ) {
9
- return `/${ name } /` ;
10
- } ,
11
- getFile ( name , file ) {
12
- return `${ name } /${ file } ` ;
13
- } ,
14
- } ) , {
15
- imports : { } ,
16
- scopes : { }
17
- } )
5
+ assert . deepEqual (
6
+ getImportMap ( {
7
+ manifests : [ ] ,
8
+ getScope ( name ) {
9
+ return `/${ name } /` ;
10
+ } ,
11
+ getFile ( name , file ) {
12
+ return `${ name } /${ file } ` ;
13
+ }
14
+ } ) ,
15
+ {
16
+ imports : { } ,
17
+ scopes : { }
18
+ }
19
+ ) ;
18
20
} ) ;
19
21
20
-
21
- test ( 'should generate import map with remote exports' , async ( ) => {
22
+ test ( 'should generate import map with remote exports and module scopes' , async ( ) => {
22
23
const result = getImportMap ( {
23
24
manifests : [
24
25
{
@@ -31,7 +32,7 @@ test('should generate import map with remote exports', async () => {
31
32
file : 'src/entry.server.mjs' ,
32
33
identifier : 'ssr-vue2-remote/src/entry.server'
33
34
} ,
34
- ' vue' : {
35
+ vue : {
35
36
name : 'vue' ,
36
37
rewrite : false ,
37
38
file : 'vue.mjs' ,
@@ -48,7 +49,7 @@ test('should generate import map with remote exports', async () => {
48
49
{
49
50
name : 'ssr-vue2-host' ,
50
51
imports : {
51
- " vue" : " ssr-vue2-remote/vue"
52
+ vue : ' ssr-vue2-remote/vue'
52
53
} ,
53
54
exports : { }
54
55
}
@@ -58,20 +59,61 @@ test('should generate import map with remote exports', async () => {
58
59
} ,
59
60
getFile ( name , file ) {
60
61
return `${ name } /${ file } ` ;
61
- } ,
62
+ }
62
63
} ) ;
63
64
assert . deepEqual ( result , {
64
65
imports : {
65
- 'ssr-vue2-remote/src/entry.server' : 'ssr-vue2-remote/src/entry.server.mjs' ,
66
+ 'ssr-vue2-remote/src/entry.server' :
67
+ 'ssr-vue2-remote/src/entry.server.mjs' ,
66
68
'ssr-vue2-remote/vue' : 'ssr-vue2-remote/vue.mjs' ,
67
- 'ssr-vue2-remote/src/components/index' : 'ssr-vue2-remote/src/components/index.mjs' ,
68
- 'ssr-vue2-remote/src/components' : 'ssr-vue2-remote/src/components/index.mjs'
69
+ 'ssr-vue2-remote/src/components/index' :
70
+ 'ssr-vue2-remote/src/components/index.mjs' ,
71
+ 'ssr-vue2-remote/src/components' :
72
+ 'ssr-vue2-remote/src/components/index.mjs'
69
73
} ,
70
- scopes : {
71
- '/ssr-vue2-host/' : {
72
- "vue" : "ssr-vue2-remote/vue.mjs" ,
74
+ scopes : {
75
+ '/ssr-vue2-host/' : {
76
+ vue : 'ssr-vue2-remote/vue.mjs'
77
+ } ,
78
+ '/ssr-vue2-remote/' : { vue : 'ssr-vue2-remote/vue.mjs' }
79
+ }
80
+ } ) ;
81
+ } ) ;
82
+ test ( 'should generate import map with remote exports and module scopes' , async ( ) => {
83
+ const result = getImportMap ( {
84
+ manifests : [
85
+ {
86
+ name : 'ssr-vue2-remote' ,
87
+ imports : { } ,
88
+ exports : {
89
+ vue : {
90
+ name : 'vue' ,
91
+ rewrite : false ,
92
+ file : 'vue.mjs' ,
93
+ identifier : 'ssr-vue2-remote/vue'
94
+ }
95
+ }
73
96
} ,
74
- '/ssr-vue2-remote/' : { vue : 'ssr-vue2-remote/vue.mjs' }
97
+ {
98
+ name : 'ssr-vue2-host' ,
99
+ imports : {
100
+ vue : 'ssr-vue2-remote/vue3'
101
+ } ,
102
+ exports : { }
103
+ }
104
+ ] ,
105
+ getScope ( name ) {
106
+ return `/${ name } /` ;
107
+ } ,
108
+ getFile ( name , file ) {
109
+ return `${ name } /${ file } ` ;
110
+ }
111
+ } ) ;
112
+ assert . deepEqual ( result , {
113
+ imports : { 'ssr-vue2-remote/vue' : 'ssr-vue2-remote/vue.mjs' } ,
114
+ scopes : {
115
+ '/ssr-vue2-remote/' : { vue : 'ssr-vue2-remote/vue.mjs' } ,
116
+ '/ssr-vue2-host/' : { vue : 'ssr-vue2-remote/vue3' }
75
117
}
76
118
} ) ;
77
119
} ) ;
0 commit comments