diff --git a/web/app/common/store.test.js b/web/app/common/store.test.js index 1694472b..191351b7 100644 --- a/web/app/common/store.test.js +++ b/web/app/common/store.test.js @@ -3,9 +3,11 @@ import store from './store'; describe('Store', () => { it('should trigger listener on add comment', () => { const listener = jest.fn(); + store.set('comments', []); store.onUpdate('comments', listener); store.addComment({id:`new`}); + expect(listener).toBeCalledWith([{"comment": {"id": "new"}}]); }); }); diff --git a/web/app/components/auth-panel/__tests__/auth-panel.test.js b/web/app/components/auth-panel/__tests__/auth-panel.test.js index fc49cef1..30a845f0 100644 --- a/web/app/components/auth-panel/__tests__/auth-panel.test.js +++ b/web/app/components/auth-panel/__tests__/auth-panel.test.js @@ -5,46 +5,67 @@ 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. Sign out?')); }); }); 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'); }); diff --git a/web/app/components/auth-panel/auth-panel.jsx b/web/app/components/auth-panel/auth-panel.jsx index 54ed9378..3a6a56f1 100644 --- a/web/app/components/auth-panel/auth-panel.jsx +++ b/web/app/components/auth-panel/auth-panel.jsx @@ -51,7 +51,7 @@ export default class AuthPanel extends Component { } { - loggedIn === false && ( + !loggedIn && (
Sign in to comment using {' '} diff --git a/web/app/components/preloader/__tests__/preloader.test.jsx b/web/app/components/preloader/__tests__/preloader.test.jsx index a8d820b9..8d490ace 100644 --- a/web/app/components/preloader/__tests__/preloader.test.jsx +++ b/web/app/components/preloader/__tests__/preloader.test.jsx @@ -4,12 +4,14 @@ import {createDomContainer} from 'testUtils'; describe(``, () => { let container; + createDomContainer(({domContainer}) => { container = domContainer; }); it('should render Preloader', () => { render(, container); + expect(container.children[0].className).toEqual('preloader root__preloader'); }); });