/* global jest, expect */ import React from 'react'; import ShallowRenderer from 'react-test-renderer/shallow'; import { apiLocation } from '../../config/env.json'; import { ShowSettings } from './ShowSettings'; describe('', () => { it('renders to the DOM when user is logged in', () => { const shallow = new ShallowRenderer(); shallow.render(); expect(navigate).toHaveBeenCalledTimes(0); const result = shallow.getRenderOutput(); expect(result.type.toString()).toBe('Symbol(react.fragment)'); // Renders Helmet component rather than Loader expect(result.props.children[0].props.title).toEqual( 'buttons.settings | freeCodeCamp.org' ); }); it('redirects to sign in page when user is not logged in', () => { const shallow = new ShallowRenderer(); shallow.render(); expect(navigate).toHaveBeenCalledTimes(1); expect(navigate).toHaveBeenCalledWith(`${apiLocation}/signin`); const result = shallow.getRenderOutput(); // Renders Loader rather than ShowSettings expect(result.type.displayName).toBe('Loader'); }); }); const navigate = jest.fn(); const loggedInProps = { createFlashMessage: jest.fn(), hardGoTo: jest.fn(), isSignedIn: true, navigate: navigate, showLoading: false, submitNewAbout: jest.fn(), toggleNightMode: jest.fn(), updateInternetSettings: jest.fn(), updateIsHonest: jest.fn(), updatePortfolio: jest.fn(), updateQuincyEmail: jest.fn(), user: { about: '', completedChallenges: [] }, verifyCert: jest.fn() }; const loggedOutProps = { ...loggedInProps }; loggedOutProps.isSignedIn = false;