@@ -170,6 +170,26 @@ describe('build:electron', () => {
170
170
'projectPath/dist_electron/bundled/css/fonts'
171
171
)
172
172
} )
173
+
174
+ test ( '--mode argument takes precedence over other options' , async ( ) => {
175
+ await runCommand (
176
+ 'build:electron' ,
177
+ { pluginOptions : { electronBuilder : { buildMode : 'production' } } } ,
178
+ { headless : true , mode : 'development' }
179
+ )
180
+
181
+ // Development mode is used
182
+ expect ( buildRenderer . mock . calls [ 0 ] [ 0 ] . mode ) . toBe ( 'development' )
183
+ } )
184
+
185
+ test ( 'buildMode sets Vue mode if provided' , async ( ) => {
186
+ await runCommand ( 'build:electron' , {
187
+ pluginOptions : { electronBuilder : { buildMode : 'development' } }
188
+ } )
189
+
190
+ // Development mode is used
191
+ expect ( buildRenderer . mock . calls [ 0 ] [ 0 ] . mode ) . toBe ( 'development' )
192
+ } )
173
193
} )
174
194
175
195
describe ( 'serve:electron' , ( ) => {
@@ -269,21 +289,40 @@ describe('serve:electron', () => {
269
289
// Electron is not launched
270
290
expect ( execa ) . not . toBeCalled ( )
271
291
} )
272
- test ( 'If --healdess argument is passed, serve:electron is launched in production mode' , async ( ) => {
273
- await runCommand ( 'serve:electron' , { } , { headless : true } )
292
+ test ( 'If --headless argument is passed, serve:electron is launched in production mode' , async ( ) => {
293
+ await runCommand (
294
+ 'serve:electron' ,
295
+ {
296
+ // It should take precedence over plugin options
297
+ pluginOptions : { electronBuilder : { serveMode : 'production' } }
298
+ } ,
299
+ { headless : true }
300
+ )
274
301
275
302
// Production mode is used
276
303
expect ( serve . mock . calls [ 0 ] [ 0 ] . mode ) . toBe ( 'production' )
277
304
// Electron is not launched
278
305
expect ( execa ) . not . toBeCalled ( )
279
306
} )
280
- test ( 'If --forceDev argument is passed, serve:electron is launched in dev mode' , async ( ) => {
281
- await runCommand ( 'serve:electron' , { } , { headless : true , forceDev : true } )
282
307
283
- // Production mode is used
308
+ test ( '--mode argument takes precedence over other options' , async ( ) => {
309
+ await runCommand (
310
+ 'serve:electron' ,
311
+ { pluginOptions : { electronBuilder : { serveMode : 'production' } } } ,
312
+ { headless : true , mode : 'development' }
313
+ )
314
+
315
+ // Development mode is used
284
316
expect ( serve . mock . calls [ 0 ] [ 0 ] . mode ) . toBe ( 'development' )
285
- // Electron is not launched
286
- expect ( execa ) . not . toBeCalled ( )
317
+ } )
318
+
319
+ test ( 'serveMode sets Vue mode if provided' , async ( ) => {
320
+ await runCommand ( 'serve:electron' , {
321
+ pluginOptions : { electronBuilder : { serveMode : 'production' } }
322
+ } )
323
+
324
+ // Development mode is used
325
+ expect ( serve . mock . calls [ 0 ] [ 0 ] . mode ) . toBe ( 'production' )
287
326
} )
288
327
} )
289
328
@@ -349,7 +388,11 @@ describe('testWithSpectron', async () => {
349
388
} )
350
389
test ( 'launches dev server in dev mode if forceDev argument is provided' , async ( ) => {
351
390
await runSpectron ( { forceDev : true } )
352
- expect ( execa . mock . calls [ 0 ] [ 1 ] ) . toContain ( '--forceDev' )
391
+
392
+ // Mode argument was set to development
393
+ expect (
394
+ execa . mock . calls [ 0 ] [ 1 ] . join ( ' ' ) . indexOf ( '--mode development' )
395
+ ) . not . toBe ( - 1 )
353
396
} )
354
397
test ( 'returns stdout of command' , async ( ) => {
355
398
const { stdout } = await runSpectron ( { } , { customLog : 'shouldBeInLog' } )
0 commit comments