UNPKG

impersonation-banner

Version:

A banner that shows when a Keycloak impersonator is active

41 lines (31 loc) 1.28 kB
/** * @jest-environment jsdom */ const { injectImpersonationBanner } = require('../src/impersonation-banner'); describe('injectImpersonationBanner', () => { beforeEach(() => { document.body.innerHTML = ''; localStorage.clear(); jest.spyOn(window.location, 'reload').mockImplementation(() => {}); }); afterEach(() => { window.location.reload.mockRestore(); }); it('should render impersonating banner if realUserId !== currentUserId', () => { localStorage.setItem('realUserId', 'admin'); localStorage.setItem('currentUserId', 'user'); injectImpersonationBanner(); const banner = document.getElementById('impersonation-banner'); expect(banner).not.toBeNull(); expect(banner.textContent).toContain('impersonating'); }); it('should remove realUserId and call reload on stop click', () => { localStorage.setItem('realUserId', 'admin'); localStorage.setItem('currentUserId', 'user'); injectImpersonationBanner(); const stopBtn = document.getElementById('stop-impersonation'); stopBtn.click(); expect(localStorage.getItem('realUserId')).toBeNull(); expect(window.location.reload).toHaveBeenCalled(); }); });