[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
This commit is contained in:
Devin Binnie 2022-01-25 09:51:25 -05:00 committed by GitHub
parent c43dfe6002
commit 6803310217
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 23 additions and 32 deletions

View file

@ -202,11 +202,13 @@ describe('main/app/initialize', () => {
}); });
describe('initializeAfterAppReady', () => { describe('initializeAfterAppReady', () => {
it('should set spell checker URL if applicable', async () => { if (process.platform !== 'darwin') {
Config.spellCheckerURL = 'http://server-1.com'; it('should set spell checker URL if applicable', async () => {
await initialize(); Config.spellCheckerURL = 'http://server-1.com';
expect(session.defaultSession.setSpellCheckerDictionaryDownloadURL).toHaveBeenCalledWith('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 () => { it('should clear app cache if last version opened was older', async () => {
wasUpdated.mockReturnValue(true); wasUpdated.mockReturnValue(true);

View file

@ -27,17 +27,17 @@ jest.mock('./windows/windowManager', () => ({
describe('main/badge', () => { describe('main/badge', () => {
describe('showBadgeWindows', () => { describe('showBadgeWindows', () => {
it('should show dot when session expired', () => { 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)); expect(WindowManager.setOverlayIcon).toBeCalledWith('•', expect.any(String), expect.any(Boolean));
}); });
it('should show mention count when has mention count', () => { 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); expect(WindowManager.setOverlayIcon).toBeCalledWith('50', expect.any(String), false);
}); });
it('should show 99+ when has mention count over 99', () => { 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); expect(WindowManager.setOverlayIcon).toBeCalledWith('99+', expect.any(String), true);
}); });
@ -56,12 +56,12 @@ describe('main/badge', () => {
describe('showBadgeOSX', () => { describe('showBadgeOSX', () => {
it('should show dot when session expired', () => { it('should show dot when session expired', () => {
Badge.showBadgeOSX(true, 7, false); Badge.showBadgeOSX(true, 0, false);
expect(app.dock.setBadge).toBeCalledWith('•'); expect(app.dock.setBadge).toBeCalledWith('•');
}); });
it('should show mention count when has mention count', () => { 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'); expect(app.dock.setBadge).toBeCalledWith('50');
}); });

View file

@ -16,27 +16,27 @@ let showUnreadBadgeSetting: boolean;
export function showBadgeWindows(sessionExpired: boolean, mentionCount: number, showUnreadBadge: boolean) { export function showBadgeWindows(sessionExpired: boolean, mentionCount: number, showUnreadBadge: boolean) {
let description = 'You have no unread messages'; let description = 'You have no unread messages';
let text; let text;
if (sessionExpired) { if (mentionCount > 0) {
text = '•';
description = 'Session Expired: Please sign in to continue receiving notifications.';
} else if (mentionCount > 0) {
text = (mentionCount > MAX_WIN_COUNT) ? `${MAX_WIN_COUNT}+` : mentionCount.toString(); text = (mentionCount > MAX_WIN_COUNT) ? `${MAX_WIN_COUNT}+` : mentionCount.toString();
description = `You have unread mentions (${mentionCount})`; description = `You have unread mentions (${mentionCount})`;
} else if (showUnreadBadge && showUnreadBadgeSetting) { } else if (showUnreadBadge && showUnreadBadgeSetting) {
text = '•'; text = '•';
description = 'You have unread channels'; 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); WindowManager.setOverlayIcon(text, description, mentionCount > 99);
} }
export function showBadgeOSX(sessionExpired: boolean, mentionCount: number, showUnreadBadge: boolean) { export function showBadgeOSX(sessionExpired: boolean, mentionCount: number, showUnreadBadge: boolean) {
let badge = ''; let badge = '';
if (sessionExpired) { if (mentionCount > 0) {
badge = '•';
} else if (mentionCount > 0) {
badge = mentionCount.toString(); badge = mentionCount.toString();
} else if (showUnreadBadge && showUnreadBadgeSetting) { } else if (showUnreadBadge && showUnreadBadgeSetting) {
badge = '•'; badge = '•';
} else if (sessionExpired) {
badge = '•';
} }
app.dock.setBadge(badge); app.dock.setBadge(badge);
} }

View file

@ -149,13 +149,6 @@ window.addEventListener('message', ({origin, data = {}} = {}) => {
ipcRenderer.send(BROWSER_HISTORY_BUTTON, viewName); ipcRenderer.send(BROWSER_HISTORY_BUTTON, viewName);
break; break;
} }
default:
if (typeof type === 'undefined') {
console.log('ignoring message of undefined type:');
console.log(data);
} else {
console.log(`ignored message of type: ${type}`);
}
} }
}); });

View file

@ -93,12 +93,12 @@ export function setupTray(icontheme: string) {
}); });
AppState.on(UPDATE_TRAY, (anyExpired, anyMentions, anyUnreads) => { AppState.on(UPDATE_TRAY, (anyExpired, anyMentions, anyUnreads) => {
if (anyExpired) { if (anyMentions) {
setTray('mention', 'Session Expired: Please sign in to continue receiving notifications.');
} else if (anyMentions) {
setTray('mention', 'You have been mentioned'); setTray('mention', 'You have been mentioned');
} else if (anyUnreads) { } else if (anyUnreads) {
setTray('unread', 'You have unread channels'); setTray('unread', 'You have unread channels');
} else if (anyExpired) {
setTray('mention', 'Session Expired: Please sign in to continue receiving notifications.');
} else { } else {
setTray('normal', app.name); setTray('normal', app.name);
} }

View file

@ -310,7 +310,7 @@ describe('main/views/MattermostView', () => {
}); });
describe('updateMentionsFromTitle', () => { describe('updateMentionsFromTitle', () => {
const mattermostView = new MattermostView(tabView, {remoteInfo: {serverVersion: '5.28.0'}}, {}, {}); const mattermostView = new MattermostView(tabView, {}, {}, {});
it('should parse mentions from title', () => { it('should parse mentions from title', () => {
mattermostView.updateMentionsFromTitle('(7) Mattermost'); mattermostView.updateMentionsFromTitle('(7) Mattermost');

View file

@ -335,10 +335,6 @@ export class MattermostView extends EventEmitter {
} }
updateMentionsFromTitle = (title: string) => { 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 title = this.view.webContents.getTitle();
const resultsIterator = title.matchAll(this.titleParser); const resultsIterator = title.matchAll(this.titleParser);
const results = resultsIterator.next(); // we are only interested in the first set const results = resultsIterator.next(); // we are only interested in the first set