@@ -4,12 +4,31 @@ import { stub } from 'sinon'
44import { electron , BrowserWindow } from '../test/mock-electron'
55import { WindowStateManager } from '../test/mock-window-state-manager'
66
7- test . beforeEach ( ( ) => mockery . enable ( { warnOnUnregistered : false } ) )
8- test . afterEach ( ( ) => {
7+ test . beforeEach ( ( ) => {
8+ mockery . enable ( { warnOnUnregistered : false } )
9+ } )
10+ test . afterEach . always ( ( ) => {
911 mockery . deregisterAll ( )
1012 mockery . disable ( )
1113} )
1214
15+ test ( 'mocks have coverage :(' , t => {
16+ const win = new WindowStateManager ( )
17+ t . is ( win . x , 1 )
18+ t . is ( win . y , 2 )
19+ t . is ( win . width , 3 )
20+ t . is ( win . height , 4 )
21+ t . is ( win . maximized , true )
22+ t . is ( win . saveState ( { } ) , undefined )
23+
24+ const bw = new BrowserWindow ( )
25+ t . is ( bw . getSize ( ) , undefined )
26+ t . is ( bw . loadURL ( ) , undefined )
27+ t . is ( bw . maximize ( ) , undefined )
28+ t . is ( bw . show ( ) , undefined )
29+ t . is ( bw . focus ( ) , undefined )
30+ } )
31+
1332test ( 'reads from window state' , t => {
1433 // two step process for the getters :(
1534 const width = stub ( )
@@ -41,10 +60,26 @@ test('maximizes if told by the window state manager', t => {
4160
4261 mockery . registerMock ( 'electron-window-state-manager' , WindowStateManager )
4362 mockery . registerMock ( 'electron' , electron )
63+ const maximize = stub ( BrowserWindow . prototype , 'maximize' )
64+ require ( './main-window' ) . createMainWindow ( __dirname )
65+ maximize . restore ( )
66+
67+ t . true ( maximized . calledOnce )
68+ t . true ( maximize . calledOnce )
69+ } )
70+
71+ test ( 'does not maximize unless told by the window state manager' , t => {
72+ const maximized = stub ( ) . returns ( false )
73+ stub ( WindowStateManager . prototype , 'maximized' ) . get ( maximized )
4474
75+ mockery . registerMock ( 'electron-window-state-manager' , WindowStateManager )
76+ mockery . registerMock ( 'electron' , electron )
77+ const maximize = stub ( BrowserWindow . prototype , 'maximize' )
4578 require ( './main-window' ) . createMainWindow ( __dirname )
79+ maximize . restore ( )
4680
4781 t . true ( maximized . calledOnce )
82+ t . true ( maximize . notCalled )
4883} )
4984
5085test ( 'saves window state' , t => {
@@ -60,3 +95,20 @@ test('saves window state', t => {
6095
6196 t . is ( saveState . callCount , 3 )
6297} )
98+
99+ test . cb ( 'show the window after we finish loading + delay' , t => {
100+ mockery . registerMock ( 'electron-window-state-manager' , WindowStateManager )
101+ mockery . registerMock ( 'electron' , electron )
102+
103+ const window : BrowserWindow = require ( './main-window' ) . createMainWindow ( __dirname , 1 )
104+ const showStub = stub ( window , 'show' )
105+ const focusStub = stub ( window , 'focus' )
106+
107+ window . webContents . emit ( 'did-finish-load' )
108+
109+ setTimeout ( ( ) => {
110+ t . true ( showStub . calledOnce )
111+ t . true ( focusStub . calledOnce )
112+ t . end ( )
113+ } , 2 )
114+ } )
0 commit comments