[MM-40406] Add more singletons, refactor main.ts into pieces, add tests and some cleanup + tests for additional coverage (#1890)

* Refactor main.ts dependencies into singleton pattern

* Split main.ts into testable pieces, some other refactoring for singleton pattern

* Unit tests for main/app/app

* Unit tests for main/app/config

* Unit tests for main/app/initialize

* Unit tests for main/app/intercom

* Unit tests for main/app/utils

* Add some more tests to get to 70% coverage

* Fix for linux

* Fix for alternate data dir paths

* Fix E2E test
This commit is contained in:
Devin Binnie
2021-12-09 15:11:55 -05:00
committed by GitHub
parent 850eadceb9
commit 39fbdf45c5
51 changed files with 2486 additions and 1211 deletions

View File

@@ -20,6 +20,7 @@ jest.mock('electron', () => ({
},
ipcMain: {
emit: jest.fn(),
on: jest.fn(),
},
}));
@@ -63,7 +64,7 @@ jest.mock('./webContentEvents', () => ({}));
describe('main/views/viewManager', () => {
describe('loadView', () => {
const viewManager = new ViewManager({}, {});
const viewManager = new ViewManager({});
const onceFn = jest.fn();
const loadFn = jest.fn();
@@ -108,7 +109,7 @@ describe('main/views/viewManager', () => {
});
describe('reloadViewIfNeeded', () => {
const viewManager = new ViewManager({}, {});
const viewManager = new ViewManager({});
afterEach(() => {
jest.resetAllMocks();
@@ -168,7 +169,7 @@ describe('main/views/viewManager', () => {
});
describe('reloadConfiguration', () => {
const viewManager = new ViewManager({}, {});
const viewManager = new ViewManager({});
beforeEach(() => {
viewManager.loadView = jest.fn();
@@ -379,7 +380,8 @@ describe('main/views/viewManager', () => {
},
],
}];
const viewManager = new ViewManager({teams}, {});
const viewManager = new ViewManager({});
viewManager.configServers = teams.concat();
beforeEach(() => {
viewManager.showByName = jest.fn();
@@ -499,7 +501,7 @@ describe('main/views/viewManager', () => {
});
describe('showByName', () => {
const viewManager = new ViewManager({}, {});
const viewManager = new ViewManager({});
const baseView = {
isReady: jest.fn(),
show: jest.fn(),
@@ -591,7 +593,7 @@ describe('main/views/viewManager', () => {
setTopBrowserView: jest.fn(),
addBrowserView: jest.fn(),
};
const viewManager = new ViewManager({}, window);
const viewManager = new ViewManager(window);
const loadingScreen = {webContents: {send: jest.fn()}};
beforeEach(() => {
@@ -623,7 +625,7 @@ describe('main/views/viewManager', () => {
});
describe('handleDeepLink', () => {
const viewManager = new ViewManager({}, {});
const viewManager = new ViewManager({});
const baseView = {
resetLoadingStatus: jest.fn(),
load: jest.fn(),