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 ServerManager from 'common/servers/serverManager';
|
||||
import MessagingView from 'common/views/MessagingView';
|
||||
import {updateServerInfos} from 'main/app/utils';
|
||||
import {getServerAPI} from 'main/server/serverAPI';
|
||||
|
||||
import {MattermostWebContentsView} from './MattermostWebContentsView';
|
||||
|
||||
@@ -64,6 +66,9 @@ jest.mock('../utils', () => ({
|
||||
jest.mock('main/developerMode', () => ({
|
||||
get: jest.fn(),
|
||||
}));
|
||||
jest.mock('main/app/utils', () => ({
|
||||
updateServerInfos: jest.fn(),
|
||||
}));
|
||||
jest.mock('main/performanceMonitor', () => ({
|
||||
registerView: jest.fn(),
|
||||
registerServerView: jest.fn(),
|
||||
@@ -79,6 +84,9 @@ jest.mock('common/servers/serverManager', () => ({
|
||||
}),
|
||||
on: jest.fn(),
|
||||
}));
|
||||
jest.mock('main/server/serverAPI', () => ({
|
||||
getServerAPI: jest.fn(),
|
||||
}));
|
||||
|
||||
const server = new MattermostServer({name: 'server_name', url: 'http://server-1.com'});
|
||||
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', () => {
|
||||
const window = {on: jest.fn()};
|
||||
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 {isInternalURL, parseURL} from 'common/utils/url';
|
||||
import {TAB_MESSAGING, type MattermostView} from 'common/views/View';
|
||||
import {updateServerInfos} from 'main/app/utils';
|
||||
import DeveloperMode from 'main/developerMode';
|
||||
import performanceMonitor from 'main/performanceMonitor';
|
||||
import {getServerAPI} from 'main/server/serverAPI';
|
||||
@@ -411,7 +412,10 @@ export class MattermostWebContentsView extends EventEmitter {
|
||||
getServerAPI(
|
||||
parsedURL,
|
||||
false,
|
||||
() => this.reload(loadURL),
|
||||
async () => {
|
||||
await updateServerInfos([this.view.server]);
|
||||
this.reload(loadURL);
|
||||
},
|
||||
() => {},
|
||||
(error: Error) => {
|
||||
this.log.debug(`Cannot reach server: ${error}`);
|
||||
|
Reference in New Issue
Block a user