diff --git a/client/src/client-only-routes/ShowSettings.js b/client/src/client-only-routes/ShowSettings.js index 59cc00975c0..63ffdec2e33 100644 --- a/client/src/client-only-routes/ShowSettings.js +++ b/client/src/client-only-routes/ShowSettings.js @@ -162,14 +162,13 @@ export function ShowSettings(props) { } if (!showLoading && !isSignedIn) { - return navigate(`${apiLocation}/signin?returnTo=settings`); + navigate(`${apiLocation}/signin?returnTo=settings`); + return ; } return ( - - Settings | freeCodeCamp.org - +
diff --git a/client/src/client-only-routes/ShowSettings.test.js b/client/src/client-only-routes/ShowSettings.test.js index c2079f001e6..44ae71321d3 100644 --- a/client/src/client-only-routes/ShowSettings.test.js +++ b/client/src/client-only-routes/ShowSettings.test.js @@ -7,22 +7,36 @@ import { apiLocation } from '../../config/env.json'; import { ShowSettings } from './ShowSettings'; describe('', () => { - it('redirects to signin page when user not logged in', () => { + 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( + '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?returnTo=settings` ); - expect(true).toBeTruthy(); + const result = shallow.getRenderOutput(); + // Renders Loader rather than ShowSettings + expect(result.type.displayName).toBe('Loader'); }); }); const navigate = jest.fn(); -const loggedOutProps = { +const loggedInProps = { createFlashMessage: jest.fn(), hardGoTo: jest.fn(), - isSignedIn: false, + isSignedIn: true, navigate: navigate, showLoading: false, submitNewAbout: jest.fn(), @@ -37,3 +51,5 @@ const loggedOutProps = { }, verifyCert: jest.fn() }; +const loggedOutProps = { ...loggedInProps }; +loggedOutProps.isSignedIn = false; diff --git a/client/src/pages/donate.js b/client/src/pages/donate.js index 33833d120fc..2127e189d62 100644 --- a/client/src/pages/donate.js +++ b/client/src/pages/donate.js @@ -91,7 +91,8 @@ export class DonatePage extends Component { } if (!showLoading && !isSignedIn) { - return navigate(`${apiLocation}/signin?returnTo=donate`); + navigate(`${apiLocation}/signin?returnTo=donate`); + return ; } return ( diff --git a/client/src/pages/donate.test.js b/client/src/pages/donate.test.js index 29b30f90c7c..f939412b4b2 100644 --- a/client/src/pages/donate.test.js +++ b/client/src/pages/donate.test.js @@ -6,22 +6,38 @@ import { apiLocation } from '../../config/env.json'; import { DonatePage } from './donate'; -describe('', () => { - it('redirects to signin page when user not logged in', () => { +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( + 'Support our nonprofit | 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?returnTo=donate` ); - expect(true).toBeTruthy(); + const result = shallow.getRenderOutput(); + // Renders Loader rather than DonatePage + expect(result.type.displayName).toBe('Loader'); }); }); const navigate = jest.fn(); -const loggedOutProps = { +const loggedInProps = { createFlashMessage: () => {}, - isSignedIn: false, + isSignedIn: true, showLoading: false, navigate: navigate }; +const loggedOutProps = { ...loggedInProps }; +loggedOutProps.isSignedIn = false; diff --git a/client/src/pages/portfolio.js b/client/src/pages/portfolio.js index 3a3651ac71e..5ac817b67d0 100644 --- a/client/src/pages/portfolio.js +++ b/client/src/pages/portfolio.js @@ -50,7 +50,8 @@ function ProfilePage(props) { return ; } if (!showLoading && !isSignedIn) { - return navigate(`${apiLocation}/signin?returnTo=portfolio`); + navigate(`${apiLocation}/signin?returnTo=portfolio`); + return ; } const RedirecUser = createRedirect('/' + username); return ;