From 6803310217d1a0bd04ee048d7b3d0cb37e297825 Mon Sep 17 00:00:00 2001 From: Devin Binnie <52460000+devinbinnie@users.noreply.github.com> Date: Tue, 25 Jan 2022 09:51:25 -0500 Subject: [PATCH] [MM-35666] Re-ordered the priority of badge sources to leave session expired to last (#1955) * Fixing some annoying things/stuff I broke * [MM-35666] Re-ordered the priority of badge sources to leave session expired to last * Fix tests --- src/main/app/initialize.test.js | 12 +++++++----- src/main/badge.test.js | 10 +++++----- src/main/badge.ts | 14 +++++++------- src/main/preload/mattermost.js | 7 ------- src/main/tray/tray.ts | 6 +++--- src/main/views/MattermostView.test.js | 2 +- src/main/views/MattermostView.ts | 4 ---- 7 files changed, 23 insertions(+), 32 deletions(-) diff --git a/src/main/app/initialize.test.js b/src/main/app/initialize.test.js index 27ed8099..3658442f 100644 --- a/src/main/app/initialize.test.js +++ b/src/main/app/initialize.test.js @@ -202,11 +202,13 @@ describe('main/app/initialize', () => { }); describe('initializeAfterAppReady', () => { - it('should set spell checker URL if applicable', async () => { - Config.spellCheckerURL = 'http://server-1.com'; - await initialize(); - expect(session.defaultSession.setSpellCheckerDictionaryDownloadURL).toHaveBeenCalledWith('http://server-1.com/'); - }); + if (process.platform !== 'darwin') { + it('should set spell checker URL if applicable', async () => { + Config.spellCheckerURL = 'http://server-1.com'; + await initialize(); + expect(session.defaultSession.setSpellCheckerDictionaryDownloadURL).toHaveBeenCalledWith('http://server-1.com/'); + }); + } it('should clear app cache if last version opened was older', async () => { wasUpdated.mockReturnValue(true); diff --git a/src/main/badge.test.js b/src/main/badge.test.js index ec19ceaf..6f4ea9c3 100644 --- a/src/main/badge.test.js +++ b/src/main/badge.test.js @@ -27,17 +27,17 @@ jest.mock('./windows/windowManager', () => ({ describe('main/badge', () => { describe('showBadgeWindows', () => { it('should show dot when session expired', () => { - Badge.showBadgeWindows(true, 7, false); + Badge.showBadgeWindows(true, 0, false); expect(WindowManager.setOverlayIcon).toBeCalledWith('•', expect.any(String), expect.any(Boolean)); }); it('should show mention count when has mention count', () => { - Badge.showBadgeWindows(false, 50, false); + Badge.showBadgeWindows(true, 50, false); expect(WindowManager.setOverlayIcon).toBeCalledWith('50', expect.any(String), false); }); it('should show 99+ when has mention count over 99', () => { - Badge.showBadgeWindows(false, 200, false); + Badge.showBadgeWindows(true, 200, false); expect(WindowManager.setOverlayIcon).toBeCalledWith('99+', expect.any(String), true); }); @@ -56,12 +56,12 @@ describe('main/badge', () => { describe('showBadgeOSX', () => { it('should show dot when session expired', () => { - Badge.showBadgeOSX(true, 7, false); + Badge.showBadgeOSX(true, 0, false); expect(app.dock.setBadge).toBeCalledWith('•'); }); it('should show mention count when has mention count', () => { - Badge.showBadgeOSX(false, 50, false); + Badge.showBadgeOSX(true, 50, false); expect(app.dock.setBadge).toBeCalledWith('50'); }); diff --git a/src/main/badge.ts b/src/main/badge.ts index 35d73be2..32f8102d 100644 --- a/src/main/badge.ts +++ b/src/main/badge.ts @@ -16,27 +16,27 @@ let showUnreadBadgeSetting: boolean; export function showBadgeWindows(sessionExpired: boolean, mentionCount: number, showUnreadBadge: boolean) { let description = 'You have no unread messages'; let text; - if (sessionExpired) { - text = '•'; - description = 'Session Expired: Please sign in to continue receiving notifications.'; - } else if (mentionCount > 0) { + if (mentionCount > 0) { text = (mentionCount > MAX_WIN_COUNT) ? `${MAX_WIN_COUNT}+` : mentionCount.toString(); description = `You have unread mentions (${mentionCount})`; } else if (showUnreadBadge && showUnreadBadgeSetting) { text = '•'; description = 'You have unread channels'; + } else if (sessionExpired) { + text = '•'; + description = 'Session Expired: Please sign in to continue receiving notifications.'; } WindowManager.setOverlayIcon(text, description, mentionCount > 99); } export function showBadgeOSX(sessionExpired: boolean, mentionCount: number, showUnreadBadge: boolean) { let badge = ''; - if (sessionExpired) { - badge = '•'; - } else if (mentionCount > 0) { + if (mentionCount > 0) { badge = mentionCount.toString(); } else if (showUnreadBadge && showUnreadBadgeSetting) { badge = '•'; + } else if (sessionExpired) { + badge = '•'; } app.dock.setBadge(badge); } diff --git a/src/main/preload/mattermost.js b/src/main/preload/mattermost.js index 9750633b..f5b93ed0 100644 --- a/src/main/preload/mattermost.js +++ b/src/main/preload/mattermost.js @@ -149,13 +149,6 @@ window.addEventListener('message', ({origin, data = {}} = {}) => { ipcRenderer.send(BROWSER_HISTORY_BUTTON, viewName); break; } - default: - if (typeof type === 'undefined') { - console.log('ignoring message of undefined type:'); - console.log(data); - } else { - console.log(`ignored message of type: ${type}`); - } } }); diff --git a/src/main/tray/tray.ts b/src/main/tray/tray.ts index 371b8052..3a013e94 100644 --- a/src/main/tray/tray.ts +++ b/src/main/tray/tray.ts @@ -93,12 +93,12 @@ export function setupTray(icontheme: string) { }); AppState.on(UPDATE_TRAY, (anyExpired, anyMentions, anyUnreads) => { - if (anyExpired) { - setTray('mention', 'Session Expired: Please sign in to continue receiving notifications.'); - } else if (anyMentions) { + if (anyMentions) { setTray('mention', 'You have been mentioned'); } else if (anyUnreads) { setTray('unread', 'You have unread channels'); + } else if (anyExpired) { + setTray('mention', 'Session Expired: Please sign in to continue receiving notifications.'); } else { setTray('normal', app.name); } diff --git a/src/main/views/MattermostView.test.js b/src/main/views/MattermostView.test.js index a75057ab..3d77d863 100644 --- a/src/main/views/MattermostView.test.js +++ b/src/main/views/MattermostView.test.js @@ -310,7 +310,7 @@ describe('main/views/MattermostView', () => { }); describe('updateMentionsFromTitle', () => { - const mattermostView = new MattermostView(tabView, {remoteInfo: {serverVersion: '5.28.0'}}, {}, {}); + const mattermostView = new MattermostView(tabView, {}, {}, {}); it('should parse mentions from title', () => { mattermostView.updateMentionsFromTitle('(7) Mattermost'); diff --git a/src/main/views/MattermostView.ts b/src/main/views/MattermostView.ts index f5874c74..c266c843 100644 --- a/src/main/views/MattermostView.ts +++ b/src/main/views/MattermostView.ts @@ -335,10 +335,6 @@ export class MattermostView extends EventEmitter { } updateMentionsFromTitle = (title: string) => { - if (this.serverInfo.remoteInfo.serverVersion && Util.isVersionGreaterThanOrEqualTo(this.serverInfo.remoteInfo.serverVersion, '5.29.0')) { - return; - } - //const title = this.view.webContents.getTitle(); const resultsIterator = title.matchAll(this.titleParser); const results = resultsIterator.next(); // we are only interested in the first set