Skip to content

Commit

Permalink
🐛 fix race condition on check for updates
Browse files Browse the repository at this point in the history
Signed-off-by: Marc Nuri <[email protected]>
  • Loading branch information
manusa committed Nov 27, 2022
1 parent 893cd8c commit 2feb328
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 8 deletions.
20 changes: 14 additions & 6 deletions src/__tests__/electron.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,13 +84,21 @@ const mockElectronInstance = ({...overriddenProps} = {}) => {
},
ipcMain: {
listeners: {},
emit: jest.fn(),
handle: jest.fn((eventName, func) => {
instance.ipcMain.listeners[eventName] = func;
}),
on: jest.fn((eventName, func) => {
_listen: (eventName, func) => {
if (instance.ipcMain.listeners[eventName]) {
const oldFunc = instance.ipcMain.listeners[eventName];
const newFunc = func;
func = (event, args) => {
oldFunc(event, args);
newFunc(event, args);
};
}
instance.ipcMain.listeners[eventName] = func;
}),
},
emit: jest.fn(),
handle: jest.fn((eventName, func) => instance.ipcMain._listen(eventName, func)),
on: jest.fn((eventName, func) => instance.ipcMain._listen(eventName, func)),
once: jest.fn((eventName, func) => instance.ipcMain._listen(eventName, func)),
removeHandler: jest.fn(eventName => {
delete instance.ipcMain.listeners[eventName];
})
Expand Down
3 changes: 2 additions & 1 deletion src/chrome-tabs/__tests__/index.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,9 @@ describe('Chrome Tabs Module module test suite', () => {
resolveSend = resolve;
});
browserViewInstance.webContents.send = jest.fn(() => resolveSend(true));
// When
chromeTabs.newTabContainer();
// When
require('electron').ipcMain.listeners.tabsReady();
// Then
await expect(isSent).resolves.toBe(true);
expect(browserViewInstance.webContents.send).toHaveBeenCalledWith('electronimNewVersionAvailable', true);
Expand Down
2 changes: 1 addition & 1 deletion src/chrome-tabs/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ const newTabContainer = () => {
tabContainer.webContents.loadURL(`file://${__dirname}/index.html`,
{extraHeaders: 'pragma: no-cache\nCache-control: no-cache'});
tabContainer.webContents.on('context-menu', handleContextMenu);
checkForUpdates(tabContainer.webContents);
eventBus.once(APP_EVENTS.tabsReady, () => checkForUpdates(tabContainer.webContents));
setInterval(() => checkForUpdates(tabContainer.webContents), 1000 * 60 * 30).unref();
return tabContainer;
};
Expand Down

0 comments on commit 2feb328

Please sign in to comment.