import { checkForUpdates, checkForPluginUpdates } from '@/js/check-updates'; import { init } from '@/js/net'; test('check for BS updates', async () => { window.fetch = jest.fn() .mockResolvedValueOnce({ ok: false }) .mockResolvedValueOnce({ ok: true, json: () => Promise.resolve({ available: false }) }) .mockResolvedValueOnce({ ok: true, json: () => Promise.resolve({ available: true, latest: '4.0.0' }) }); document.body.innerHTML = ` `; await checkForUpdates(); expect(window.fetch).toBeCalledWith('/admin/update/check', init); expect(document.querySelector('a').innerHTML).toBe(''); await checkForUpdates(); expect(document.querySelector('a').innerHTML).toBe(''); await checkForUpdates(); expect(document.querySelector('a').innerHTML).toContain('4.0.0'); }); test('check for plugins updates', async () => { window.fetch = jest.fn() .mockResolvedValueOnce({ ok: false }) .mockResolvedValueOnce({ ok: true, json: () => Promise.resolve({ available: false }) }) .mockResolvedValueOnce({ ok: true, json: () => Promise.resolve({ available: true, plugins: [{}] }) }); document.body.innerHTML = ` `; await checkForPluginUpdates(); expect(window.fetch).toBeCalledWith('/admin/plugins/market/check', init); expect(document.querySelector('a').innerHTML).toBe(''); await checkForPluginUpdates(); expect(document.querySelector('a').innerHTML).toBe(''); await checkForPluginUpdates(); expect(document.querySelector('a').innerHTML).toContain('1'); });