@@ -170,6 +170,26 @@ describe('build:electron', () => {
170170 'projectPath/dist_electron/bundled/css/fonts'
171171 )
172172 } )
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+ } )
173193} )
174194
175195describe ( 'serve:electron' , ( ) => {
@@ -269,21 +289,40 @@ describe('serve:electron', () => {
269289 // Electron is not launched
270290 expect ( execa ) . not . toBeCalled ( )
271291 } )
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+ )
274301
275302 // Production mode is used
276303 expect ( serve . mock . calls [ 0 ] [ 0 ] . mode ) . toBe ( 'production' )
277304 // Electron is not launched
278305 expect ( execa ) . not . toBeCalled ( )
279306 } )
280- test ( 'If --forceDev argument is passed, serve:electron is launched in dev mode' , async ( ) => {
281- await runCommand ( 'serve:electron' , { } , { headless : true , forceDev : true } )
282307
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
284316 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' )
287326 } )
288327} )
289328
@@ -349,7 +388,11 @@ describe('testWithSpectron', async () => {
349388 } )
350389 test ( 'launches dev server in dev mode if forceDev argument is provided' , async ( ) => {
351390 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 )
353396 } )
354397 test ( 'returns stdout of command' , async ( ) => {
355398 const { stdout } = await runSpectron ( { } , { customLog : 'shouldBeInLog' } )
0 commit comments