[MM-50485] Implement ServerManager, introduce id concept for identifying servers/views (#2654)

* Implement ServerManager, introduce id concept for identifying servers/views

* REVERT ME (eventually): Move back to old logging

* PR feedback

* PR feedback

* Revert "REVERT ME (eventually): Move back to old logging"

This reverts commit 46954a5bbed4dd29e89ca9d5217bb75af2837bb3.

* Merge'd

* Use the correct method for Logger in ServerManager
This commit is contained in:
Devin Binnie
2023-04-05 16:30:50 -04:00
committed by GitHub
parent 862287edff
commit 53fb8c8fd3
19 changed files with 818 additions and 57 deletions

View File

@@ -52,7 +52,7 @@ jest.mock('../utils', () => ({
shouldHaveBackBar: jest.fn(),
}));
const server = new MattermostServer('server_name', 'http://server-1.com');
const server = new MattermostServer({name: 'server_name', url: 'http://server-1.com'});
const tabView = new MessagingTabView(server);
describe('main/views/MattermostView', () => {

View File

@@ -206,9 +206,9 @@ describe('main/views/viewManager', () => {
urlTypeTuple: tuple(`http://${srv.name}.com/`, tabName),
url: new URL(`http://${srv.name}.com`),
}));
MattermostServer.mockImplementation((name, url) => ({
name,
url: new URL(url),
MattermostServer.mockImplementation((server) => ({
name: server.name,
url: new URL(server.url),
}));
const onceFn = jest.fn();
const loadFn = jest.fn();
@@ -709,9 +709,9 @@ describe('main/views/viewManager', () => {
beforeEach(() => {
Config.teams = servers.concat();
MattermostServer.mockImplementation((name, url) => ({
name,
url: new URL(url),
MattermostServer.mockImplementation((server) => ({
name: server.name,
url: new URL(server.url),
}));
equalUrlsIgnoringSubpath.mockImplementation((url1, url2) => `${url1}`.startsWith(`${url2}`));
});

View File

@@ -233,7 +233,7 @@ export class ViewManager {
*/
private loadServer = (server: TeamWithTabs) => {
const srv = new MattermostServer(server.name, server.url);
const srv = new MattermostServer(server);
const serverInfo = new ServerInfo(srv);
server.tabs.forEach((tab) => this.loadView(srv, serverInfo, tab));
}
@@ -422,7 +422,7 @@ export class ViewManager {
map((t): [TeamWithTabs, Tab] => [x, t]));
for (const [team, tab] of sortedTabs) {
const srv = new MattermostServer(team.name, team.url);
const srv = new MattermostServer(team);
const info = new ServerInfo(srv);
const tabTuple = tuple(new URL(team.url).href, tab.name as TabType);
const recycle = current.get(tabTuple);
@@ -599,8 +599,7 @@ export class ViewManager {
if (!server) {
return undefined;
}
const mmServer = new MattermostServer(server.name, server.url);
const mmServer = new MattermostServer(server);
let selectedTab = this.getServerView(mmServer, TAB_MESSAGING);
server.tabs.
filter((tab) => tab.name !== TAB_MESSAGING).