import waitForPromises from 'helpers/wait_for_promises'; import { initJiraConnect } from '~/jira_connect'; import { removeSubscription } from '~/jira_connect/api'; jest.mock('~/jira_connect/api', () => ({ removeSubscription: jest.fn().mockResolvedValue(), getLocation: jest.fn().mockResolvedValue('test/location'), })); describe('initJiraConnect', () => { window.AP = { navigator: { reload: jest.fn(), }, }; beforeEach(async () => { setFixtures(` Sign In Another Sign In Remove Remove Remove `); await initJiraConnect(); }); describe('Sign in links', () => { it('have `return_to` query parameter', () => { Array.from(document.querySelectorAll('.js-jira-connect-sign-in')).forEach((el) => { expect(el.href).toContain('return_to=test/location'); }); }); }); describe('`remove subscription` buttons', () => { describe('on click', () => { it('calls `removeSubscription`', () => { Array.from(document.querySelectorAll('.js-jira-connect-remove-subscription')).forEach( (removeSubscriptionButton) => { removeSubscriptionButton.dispatchEvent(new Event('click')); waitForPromises(); expect(removeSubscription).toHaveBeenCalledWith(removeSubscriptionButton.href); expect(removeSubscription).toHaveBeenCalledTimes(1); removeSubscription.mockClear(); }, ); }); }); }); });