From 4d93fd6c0f520e08ba8d10b7ffdcbecdd50e97e2 Mon Sep 17 00:00:00 2001 From: Alie Langston Date: Wed, 31 Mar 2021 14:14:58 -0400 Subject: [PATCH] Added upload help text to photo context panels updated messages --- src/id-verification/CameraHelp.jsx | 18 ++++++++- .../IdVerification.messages.js | 10 +++++ .../tests/panels/IdContextPanel.test.jsx | 31 +++++++++++++++ .../panels/PortraitPhotoContextPanel.test.jsx | 39 ++++++++++++++++++- 4 files changed, 96 insertions(+), 2 deletions(-) diff --git a/src/id-verification/CameraHelp.jsx b/src/id-verification/CameraHelp.jsx index b5e6c3a..d797493 100644 --- a/src/id-verification/CameraHelp.jsx +++ b/src/id-verification/CameraHelp.jsx @@ -1,13 +1,29 @@ -import React from 'react'; +import React, { useContext } from 'react'; import PropTypes from 'prop-types'; import { Collapsible } from '@edx/paragon'; import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import messages from './IdVerification.messages'; +import IdVerificationContext from './IdVerificationContext'; function CameraHelp(props) { + const { optimizelyExperimentName } = useContext(IdVerificationContext); + return (
+ { optimizelyExperimentName + && ( + +

+ {props.intl.formatMessage(messages['id.verification.camera.help.upload.answer'])} +

+
+ )} { }; const contextValue = { + optimizelyExperimentName: '', facePhotoFile: 'test.jpg', }; @@ -44,4 +46,33 @@ describe('IdContextPanel', () => { fireEvent.click(button); expect(history.location.pathname).toEqual('/take-id-photo'); }); + + it('does not show help text for photo upload if not part of experiment', async () => { + await act(async () => render(( + + + + + + + + ))); + const title = await screen.queryByText('What if I want to upload a photo instead?'); + expect(title).not.toBeInTheDocument(); + }); + + it('shows help text for photo upload if part of experiment', async () => { + contextValue.optimizelyExperimentName = 'test'; + await act(async () => render(( + + + + + + + + ))); + const title = await screen.queryByText('What if I want to upload a photo instead?'); + expect(title).toBeInTheDocument(); + }); }); diff --git a/src/id-verification/tests/panels/PortraitPhotoContextPanel.test.jsx b/src/id-verification/tests/panels/PortraitPhotoContextPanel.test.jsx index ba083a5..8a7c958 100644 --- a/src/id-verification/tests/panels/PortraitPhotoContextPanel.test.jsx +++ b/src/id-verification/tests/panels/PortraitPhotoContextPanel.test.jsx @@ -4,9 +4,11 @@ import { createMemoryHistory } from 'history'; import { render, cleanup, act, screen, fireEvent, } from '@testing-library/react'; +import '@testing-library/jest-dom/extend-expect'; import '@edx/frontend-platform/analytics'; import { injectIntl, IntlProvider } from '@edx/frontend-platform/i18n'; import PortraitPhotoContextPanel from '../../panels/PortraitPhotoContextPanel'; +import IdVerificationContext from '../../IdVerificationContext'; jest.mock('@edx/frontend-platform/analytics', () => ({ sendTrackEvent: jest.fn(), @@ -21,6 +23,10 @@ describe('PortraitPhotoContextPanel', () => { intl: {}, }; + const contextValue = { + optimizelyExperimentName: '', + }; + afterEach(() => { cleanup(); }); @@ -29,7 +35,9 @@ describe('PortraitPhotoContextPanel', () => { await act(async () => render(( - + + + ))); @@ -37,4 +45,33 @@ describe('PortraitPhotoContextPanel', () => { fireEvent.click(button); expect(history.location.pathname).toEqual('/take-portrait-photo'); }); + + it('does not show help text for photo upload if not part of experiment', async () => { + await act(async () => render(( + + + + + + + + ))); + const title = await screen.queryByText('What if I want to upload a photo instead?'); + expect(title).not.toBeInTheDocument(); + }); + + it('shows help text for photo upload if part of experiment', async () => { + contextValue.optimizelyExperimentName = 'test'; + await act(async () => render(( + + + + + + + + ))); + const title = await screen.queryByText('What if I want to upload a photo instead?'); + expect(title).toBeInTheDocument(); + }); });