@@ -9,14 +9,15 @@ const MULTIPLE_PAGES_PROJECT_PATH = path.resolve('./tests/pages-project');
9
9
process . env . __VUE_CLI_PLUGIN_NAVIGATOR_TEST__ = true ;
10
10
process . env . VUE_CLI_TEST = true ;
11
11
12
- function createService ( projectPath , mode ) {
12
+ function createService ( projectPath , mode , projectOptions ) {
13
13
const service = new Service ( projectPath , {
14
14
plugins : [
15
15
{
16
16
id : 'inline:' + PLUGIN_NAME ,
17
17
apply : navigatorPlugin
18
18
}
19
- ]
19
+ ] ,
20
+ inlineOptions : projectOptions
20
21
} ) ;
21
22
service . init ( mode ) ;
22
23
return service ;
@@ -31,7 +32,14 @@ describe('插件生效灰度测试', () => {
31
32
test ( '多页模式下,插件生效' , ( ) => {
32
33
const service = createService (
33
34
MULTIPLE_PAGES_PROJECT_PATH ,
34
- 'development'
35
+ 'development' ,
36
+ {
37
+ assetsDir : './' ,
38
+ pages : {
39
+ page1 : './src/pages/page1.js' ,
40
+ page2 : './src/pages/page2.js'
41
+ }
42
+ }
35
43
) ;
36
44
const webpackConfig = service . resolveWebpackConfig ( ) ;
37
45
expect ( Object . keys ( webpackConfig . entry ) . length ) . toBe ( 3 ) ;
@@ -40,9 +48,52 @@ describe('插件生效灰度测试', () => {
40
48
test ( '多页模式下,插件只对development mode有效' , ( ) => {
41
49
const service = createService (
42
50
MULTIPLE_PAGES_PROJECT_PATH ,
43
- 'production'
51
+ 'production' ,
52
+ {
53
+ publicPath : '/static' ,
54
+ assetsDir : './' ,
55
+ pages : {
56
+ page1 : './src/pages/page1.js' ,
57
+ page2 : './src/pages/page2.js'
58
+ }
59
+ }
44
60
) ;
45
61
const webpackConfig = service . resolveWebpackConfig ( ) ;
46
62
expect ( Object . keys ( webpackConfig . entry ) . length ) . toBe ( 2 ) ;
47
63
} ) ;
48
64
} ) ;
65
+
66
+ describe ( 'webpack dev server配置' , ( ) => {
67
+ const projectOptions = {
68
+ publicPath : '/static/' ,
69
+ assetsDir : './' ,
70
+ pages : {
71
+ page1 : './src/pages/page1.js' ,
72
+ page2 : './src/pages/page2.js'
73
+ }
74
+ } ;
75
+ const service = createService (
76
+ MULTIPLE_PAGES_PROJECT_PATH ,
77
+ 'development' ,
78
+ projectOptions
79
+ ) ;
80
+ const webpackConfig = service . resolveWebpackConfig ( ) ;
81
+ test ( 'index' , ( ) => {
82
+ expect ( webpackConfig . devServer . index ) . toBe (
83
+ 'vue-cli-plugin-navigator.html'
84
+ ) ;
85
+ } ) ;
86
+ test ( 'openPage' , ( ) => {
87
+ expect ( webpackConfig . devServer . openPage ) . toBe (
88
+ 'vue-cli-plugin-navigator.html'
89
+ ) ;
90
+ } ) ;
91
+ test ( 'historyApiFallback' , ( ) => {
92
+ expect ( webpackConfig . devServer . historyApiFallback . rewrites [ 0 ] . to ) . toBe (
93
+ path . resolve (
94
+ projectOptions . publicPath ,
95
+ 'vue-cli-plugin-navigator.html'
96
+ )
97
+ ) ;
98
+ } ) ;
99
+ } ) ;
0 commit comments