@@ -4,49 +4,59 @@ import { stub } from 'sinon'
44import { electron , BrowserWindow } from '../test/mock-electron'
55import { WindowStateManager } from '../test/mock-window-state-manager'
66
7- test . beforeEach ( ( ) => {
8- mockery . enable ( { warnOnUnregistered : false } )
7+ test . beforeEach ( ( ) => mockery . enable ( { warnOnUnregistered : false } ) )
8+ test . afterEach ( ( ) => {
9+ mockery . deregisterAll ( )
10+ mockery . disable ( )
911} )
1012
11- test . after . always ( ( ) => mockery . disable ( ) )
12-
13- test ( 'reads from the window state manager' , t => {
14- // stub the getters of window state manager
13+ test ( 'reads from window state' , t => {
14+ // two step process for the getters :(
1515 const width = stub ( )
1616 const height = stub ( )
1717 const x = stub ( )
1818 const y = stub ( )
19-
20- // stubbed this one with a value to drive thru a branch in that code
21- const maximized = stub ( ) . returns ( true )
22-
23- // override the getters of the window state manager
2419 stub ( WindowStateManager . prototype , 'width' ) . get ( width )
2520 stub ( WindowStateManager . prototype , 'height' ) . get ( height )
2621 stub ( WindowStateManager . prototype , 'x' ) . get ( x )
2722 stub ( WindowStateManager . prototype , 'y' ) . get ( y )
28- stub ( WindowStateManager . prototype , 'maximized' ) . get ( maximized )
29-
30- const saveState = stub ( WindowStateManager . prototype , 'saveState' )
3123
32- // mock up the libraries
24+ // hijack the 3rd parties
3325 mockery . registerMock ( 'electron-window-state-manager' , WindowStateManager )
34- mockery . registerMock ( 'electron' , { ... electron , BrowserWindow } )
26+ mockery . registerMock ( 'electron' , electron )
3527
36- // now bring in our library
37- const window : BrowserWindow = require ( './main-window' ) . createMainWindow ( __dirname )
28+ // now we can create our window
29+ require ( './main-window' ) . createMainWindow ( __dirname )
3830
39- // window state manager mocks all fired?
40- t . true ( maximized . calledOnce )
31+ // did our mocks get called?
4132 t . true ( width . calledOnce )
4233 t . true ( height . calledOnce )
4334 t . true ( x . calledOnce )
4435 t . true ( y . calledOnce )
36+ } )
37+
38+ test ( 'maximizes if told by the window state manager' , t => {
39+ const maximized = stub ( ) . returns ( true )
40+ stub ( WindowStateManager . prototype , 'maximized' ) . get ( maximized )
41+
42+ mockery . registerMock ( 'electron-window-state-manager' , WindowStateManager )
43+ mockery . registerMock ( 'electron' , electron )
44+
45+ require ( './main-window' ) . createMainWindow ( __dirname )
46+
4547 t . true ( maximized . calledOnce )
48+ } )
4649
47- // manually trigger the WindowStateManager to save on the known events
50+ test ( 'saves window state' , t => {
51+ const saveState = stub ( WindowStateManager . prototype , 'saveState' )
52+
53+ mockery . registerMock ( 'electron-window-state-manager' , WindowStateManager )
54+ mockery . registerMock ( 'electron' , electron )
55+
56+ const window : BrowserWindow = require ( './main-window' ) . createMainWindow ( __dirname )
4857 window . emit ( 'close' )
4958 window . emit ( 'move' )
5059 window . emit ( 'resize' )
60+
5161 t . is ( saveState . callCount , 3 )
5262} )
0 commit comments