diff options
Diffstat (limited to 'test/mocks')
| -rw-r--r-- | test/mocks/ipc.js | 84 |
1 files changed, 52 insertions, 32 deletions
diff --git a/test/mocks/ipc.js b/test/mocks/ipc.js index bb1a872454..3225fe9ed9 100644 --- a/test/mocks/ipc.js +++ b/test/mocks/ipc.js @@ -1,37 +1,57 @@ // @flow -import type { IpcFacade } from '../../app/lib/ipc-facade'; +import type { IpcFacade, BackendState } from '../../app/lib/ipc-facade'; -export function newMockIpc() { - return Object.assign({}, mockIpc); +interface MockIpc { + sendNewState: (BackendState) => void; + -getAccountData: *; + -connect: *; } -const mockIpc: IpcFacade = { +export function newMockIpc() { + + const stateListeners = []; - getAccountData: () => { - return new Promise(r => r({ - paid_until: '', - })); - }, - setAccount: () => { - return new Promise(r => r()); - }, - setCountry: () => { - return new Promise(r => r()); - }, - connect: () => { - return new Promise(r => r()); - }, - disconnect: () => { - return new Promise(r => r()); - }, - getIp: () => { - return new Promise(r => r('1.2.3.4')); - }, - getLocation: () => { - return new Promise(r => r({ - city: '', - country: '', - latlong: [], - })); - }, -}; + const mockIpc: IpcFacade & MockIpc = { + + getAccountData: () => { + return new Promise(r => r({ + paid_until: '', + })); + }, + setAccount: () => { + return new Promise(r => r()); + }, + setCountry: () => { + return new Promise(r => r()); + }, + connect: () => { + return new Promise(r => r()); + }, + disconnect: () => { + return new Promise(r => r()); + }, + getIp: () => { + return new Promise(r => r('1.2.3.4')); + }, + getLocation: () => { + return new Promise(r => r({ + city: '', + country: '', + latlong: [], + })); + }, + getState: () => { + return new Promise(r => r('unsecured')); + }, + registerStateListener: (listener: (BackendState) => void) => { + stateListeners.push(listener); + }, + sendNewState: (state: BackendState) => { + for(const l of stateListeners) { + l(state); + } + }, + }; + + return mockIpc; +} |
