Reload server info on retry (#3356)
* Reload server info on retry * test
This commit is contained in:
@@ -8,6 +8,8 @@ import {LOAD_FAILED, UPDATE_TARGET_URL} from 'common/communication';
|
|||||||
import {MattermostServer} from 'common/servers/MattermostServer';
|
import {MattermostServer} from 'common/servers/MattermostServer';
|
||||||
import ServerManager from 'common/servers/serverManager';
|
import ServerManager from 'common/servers/serverManager';
|
||||||
import MessagingView from 'common/views/MessagingView';
|
import MessagingView from 'common/views/MessagingView';
|
||||||
|
import {updateServerInfos} from 'main/app/utils';
|
||||||
|
import {getServerAPI} from 'main/server/serverAPI';
|
||||||
|
|
||||||
import {MattermostWebContentsView} from './MattermostWebContentsView';
|
import {MattermostWebContentsView} from './MattermostWebContentsView';
|
||||||
|
|
||||||
@@ -64,6 +66,9 @@ jest.mock('../utils', () => ({
|
|||||||
jest.mock('main/developerMode', () => ({
|
jest.mock('main/developerMode', () => ({
|
||||||
get: jest.fn(),
|
get: jest.fn(),
|
||||||
}));
|
}));
|
||||||
|
jest.mock('main/app/utils', () => ({
|
||||||
|
updateServerInfos: jest.fn(),
|
||||||
|
}));
|
||||||
jest.mock('main/performanceMonitor', () => ({
|
jest.mock('main/performanceMonitor', () => ({
|
||||||
registerView: jest.fn(),
|
registerView: jest.fn(),
|
||||||
registerServerView: jest.fn(),
|
registerServerView: jest.fn(),
|
||||||
@@ -79,6 +84,9 @@ jest.mock('common/servers/serverManager', () => ({
|
|||||||
}),
|
}),
|
||||||
on: jest.fn(),
|
on: jest.fn(),
|
||||||
}));
|
}));
|
||||||
|
jest.mock('main/server/serverAPI', () => ({
|
||||||
|
getServerAPI: jest.fn(),
|
||||||
|
}));
|
||||||
|
|
||||||
const server = new MattermostServer({name: 'server_name', url: 'http://server-1.com'});
|
const server = new MattermostServer({name: 'server_name', url: 'http://server-1.com'});
|
||||||
const view = new MessagingView(server, true);
|
const view = new MessagingView(server, true);
|
||||||
@@ -207,6 +215,24 @@ describe('main/views/MattermostWebContentsView', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('retryInBackground', () => {
|
||||||
|
const window = {on: jest.fn()};
|
||||||
|
const mattermostView = new MattermostWebContentsView(view, {}, {});
|
||||||
|
mattermostView.reload = jest.fn();
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
MainWindow.get.mockReturnValue(window);
|
||||||
|
mattermostView.webContentsView.webContents.loadURL.mockImplementation(() => Promise.resolve());
|
||||||
|
getServerAPI.mockImplementation((url, isAuth, onSuccess) => onSuccess());
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should call updateServerInfos and reload on successful retry', async () => {
|
||||||
|
await mattermostView.retryInBackground('http://server-1.com')();
|
||||||
|
expect(updateServerInfos).toBeCalled();
|
||||||
|
expect(mattermostView.reload).toBeCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
describe('goToOffset', () => {
|
describe('goToOffset', () => {
|
||||||
const window = {on: jest.fn()};
|
const window = {on: jest.fn()};
|
||||||
const mattermostView = new MattermostWebContentsView(view, {}, {});
|
const mattermostView = new MattermostWebContentsView(view, {}, {});
|
||||||
|
@@ -24,6 +24,7 @@ import ServerManager from 'common/servers/serverManager';
|
|||||||
import {RELOAD_INTERVAL, MAX_SERVER_RETRIES, SECOND, MAX_LOADING_SCREEN_SECONDS} from 'common/utils/constants';
|
import {RELOAD_INTERVAL, MAX_SERVER_RETRIES, SECOND, MAX_LOADING_SCREEN_SECONDS} from 'common/utils/constants';
|
||||||
import {isInternalURL, parseURL} from 'common/utils/url';
|
import {isInternalURL, parseURL} from 'common/utils/url';
|
||||||
import {TAB_MESSAGING, type MattermostView} from 'common/views/View';
|
import {TAB_MESSAGING, type MattermostView} from 'common/views/View';
|
||||||
|
import {updateServerInfos} from 'main/app/utils';
|
||||||
import DeveloperMode from 'main/developerMode';
|
import DeveloperMode from 'main/developerMode';
|
||||||
import performanceMonitor from 'main/performanceMonitor';
|
import performanceMonitor from 'main/performanceMonitor';
|
||||||
import {getServerAPI} from 'main/server/serverAPI';
|
import {getServerAPI} from 'main/server/serverAPI';
|
||||||
@@ -411,7 +412,10 @@ export class MattermostWebContentsView extends EventEmitter {
|
|||||||
getServerAPI(
|
getServerAPI(
|
||||||
parsedURL,
|
parsedURL,
|
||||||
false,
|
false,
|
||||||
() => this.reload(loadURL),
|
async () => {
|
||||||
|
await updateServerInfos([this.view.server]);
|
||||||
|
this.reload(loadURL);
|
||||||
|
},
|
||||||
() => {},
|
() => {},
|
||||||
(error: Error) => {
|
(error: Error) => {
|
||||||
this.log.debug(`Cannot reach server: ${error}`);
|
this.log.debug(`Cannot reach server: ${error}`);
|
||||||
|
Reference in New Issue
Block a user