/** @jsx h */ import { h, render } from 'preact'; import AuthPanel from '../auth-panel'; import { createDomContainer } from 'testUtils'; describe('', () => { describe('For not authorized user', () => { let container; createDomContainer(({ domContainer }) => { container = domContainer; }); it('should render login form with google and github provider', () => { const element = ; render(element, container); const authPanelColumn = container.querySelectorAll('.auth-panel__column'); expect(authPanelColumn.length).toEqual(2); const authForm = authPanelColumn[0]; expect(authForm.textContent).toEqual(expect.stringContaining('Sign in to comment using')); const providerLinks = authForm.querySelectorAll('.auth-panel__pseudo-link'); expect(providerLinks[0].textContent).toEqual('Google'); expect(providerLinks[1].textContent).toEqual('GitHub'); }); }); describe('For authorized user', () => { let container; createDomContainer(({ domContainer }) => { container = domContainer; }); it('should render info about current user', () => { const element = ; render(element, container); const authPanelColumn = container.querySelectorAll('.auth-panel__column'); expect(authPanelColumn.length).toEqual(2); const userInfo = authPanelColumn[0]; expect(userInfo.textContent).toEqual(expect.stringContaining('You signed in as John')); }); }); describe('For admin user', () => { let container; createDomContainer(({ domContainer }) => { container = domContainer; }); it('should render admin action', () => { const element = ( ); render(element, container); const adminAction = container.querySelector('.auth-panel__admin-action'); expect(adminAction.textContent).toEqual('Show blocked users'); }); }); });