[MM-51874] Migrate loading screen to singleton (#2655)
* Migrate loadingScreen to singleton * REVERT ME when MainWindow singleton changes are merged * Revert "REVERT ME when MainWindow singleton changes are merged" This reverts commit 2de5520117b9aefb8eeb161d493de7cb275f7a5b.
This commit is contained in:
@@ -16,6 +16,7 @@ import MainWindow from 'main/windows/mainWindow';
|
||||
|
||||
import {MattermostView} from './MattermostView';
|
||||
import {ViewManager} from './viewManager';
|
||||
import LoadingScreen from './loadingScreen';
|
||||
|
||||
jest.mock('electron', () => ({
|
||||
app: {
|
||||
@@ -57,7 +58,10 @@ jest.mock('main/i18nManager', () => ({
|
||||
jest.mock('main/server/serverInfo', () => ({
|
||||
ServerInfo: jest.fn(),
|
||||
}));
|
||||
|
||||
jest.mock('main/views/loadingScreen', () => ({
|
||||
show: jest.fn(),
|
||||
fade: jest.fn(),
|
||||
}));
|
||||
jest.mock('main/windows/mainWindow', () => ({
|
||||
get: jest.fn(),
|
||||
}));
|
||||
@@ -78,7 +82,6 @@ describe('main/views/viewManager', () => {
|
||||
const destroyFn = jest.fn();
|
||||
|
||||
beforeEach(() => {
|
||||
viewManager.createLoadingScreen = jest.fn();
|
||||
viewManager.showByName = jest.fn();
|
||||
viewManager.getServerView = jest.fn().mockImplementation((srv, tabName) => ({name: `${srv.name}-${tabName}`}));
|
||||
MattermostView.mockImplementation((tab) => ({
|
||||
@@ -92,7 +95,6 @@ describe('main/views/viewManager', () => {
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
viewManager.loadingScreen = undefined;
|
||||
viewManager.closedViews = new Map();
|
||||
viewManager.views = new Map();
|
||||
});
|
||||
@@ -112,7 +114,6 @@ describe('main/views/viewManager', () => {
|
||||
it('should add view to views map and add listeners', () => {
|
||||
viewManager.loadView({name: 'server1'}, {}, {name: 'tab1', isOpen: true}, 'http://server-1.com/subpath');
|
||||
expect(viewManager.views.has('server1-tab1')).toBe(true);
|
||||
expect(viewManager.createLoadingScreen).toHaveBeenCalled();
|
||||
expect(onceFn).toHaveBeenCalledWith(LOAD_SUCCESS, viewManager.activateView);
|
||||
expect(loadFn).toHaveBeenCalledWith('http://server-1.com/subpath');
|
||||
});
|
||||
@@ -218,7 +219,6 @@ describe('main/views/viewManager', () => {
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
delete viewManager.loadingScreen;
|
||||
delete viewManager.currentView;
|
||||
viewManager.closedViews = new Map();
|
||||
viewManager.views = new Map();
|
||||
@@ -582,8 +582,6 @@ describe('main/views/viewManager', () => {
|
||||
|
||||
beforeEach(() => {
|
||||
viewManager.getCurrentView = jest.fn();
|
||||
viewManager.showLoadingScreen = jest.fn();
|
||||
viewManager.fadeLoadingScreen = jest.fn();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@@ -641,7 +639,7 @@ describe('main/views/viewManager', () => {
|
||||
view.needsLoadingScreen.mockImplementation(() => true);
|
||||
viewManager.views.set('view1', view);
|
||||
viewManager.showByName('view1');
|
||||
expect(viewManager.showLoadingScreen).toHaveBeenCalled();
|
||||
expect(LoadingScreen.show).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should show the view when not errored', () => {
|
||||
@@ -655,44 +653,6 @@ describe('main/views/viewManager', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('showLoadingScreen', () => {
|
||||
const window = {
|
||||
getBrowserViews: jest.fn(),
|
||||
setTopBrowserView: jest.fn(),
|
||||
addBrowserView: jest.fn(),
|
||||
};
|
||||
const viewManager = new ViewManager();
|
||||
const loadingScreen = {webContents: {send: jest.fn(), isLoading: () => false}};
|
||||
|
||||
beforeEach(() => {
|
||||
MainWindow.get.mockReturnValue(window);
|
||||
viewManager.createLoadingScreen = jest.fn();
|
||||
viewManager.setLoadingScreenBounds = jest.fn();
|
||||
window.getBrowserViews.mockImplementation(() => []);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
jest.resetAllMocks();
|
||||
delete viewManager.loadingScreen;
|
||||
});
|
||||
|
||||
it('should create new loading screen if one doesnt exist and add it to the window', () => {
|
||||
viewManager.createLoadingScreen.mockImplementation(() => {
|
||||
viewManager.loadingScreen = loadingScreen;
|
||||
});
|
||||
viewManager.showLoadingScreen();
|
||||
expect(viewManager.createLoadingScreen).toHaveBeenCalled();
|
||||
expect(window.addBrowserView).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should set the browser view as top if already exists and needs to be shown', () => {
|
||||
viewManager.loadingScreen = loadingScreen;
|
||||
window.getBrowserViews.mockImplementation(() => [loadingScreen]);
|
||||
viewManager.showLoadingScreen();
|
||||
expect(window.setTopBrowserView).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('getViewByURL', () => {
|
||||
const viewManager = new ViewManager({});
|
||||
viewManager.getServers = () => [
|
||||
|
Reference in New Issue
Block a user