From 1eaa072c92d86e8b3565aa034e233637b422d294 Mon Sep 17 00:00:00 2001 From: Demetriad Sinzeanu <demetriad.sinzeanu@thinslices.com> Date: Tue, 16 Oct 2018 15:46:39 +0300 Subject: [PATCH] feat: Add data-test-id's for automation testing BREAKING CHANGE: changed id's on conponents for testing --- packages/component-faraday-ui/src/AppBar.js | 2 +- .../component-faraday-ui/src/AppBarMenu.js | 8 +++++-- .../component-faraday-ui/src/AuthorTag.js | 3 ++- .../component-faraday-ui/src/AuthorTagList.js | 1 + packages/component-faraday-ui/src/Footer.js | 23 +++++++++++++++---- packages/component-faraday-ui/src/Logo.js | 11 +++++++-- .../manuscriptDetails/ManuscriptAssignHE.js | 1 + .../ManuscriptEicDecision.js | 6 ++++- .../src/manuscriptDetails/ManuscriptHeader.js | 21 ++++++++++++++--- .../manuscriptDetails/ManuscriptMetadata.js | 19 ++++++++++++--- .../components/Dashboard/DashboardFilters.js | 8 ++++++- .../src/components/SignUp/SignUpStep0.js | 18 +++++++++------ .../src/components/SignUp/SignUpStep1.js | 19 +++++++++++---- 13 files changed, 109 insertions(+), 31 deletions(-) diff --git a/packages/component-faraday-ui/src/AppBar.js b/packages/component-faraday-ui/src/AppBar.js index f1eef4177..80dc030cc 100644 --- a/packages/component-faraday-ui/src/AppBar.js +++ b/packages/component-faraday-ui/src/AppBar.js @@ -31,7 +31,7 @@ const AppBar = ({ !isSubmit && currentUser.user && ( <Button - data-test="new-manuscript" + data-test-id="new-manuscript" disabled={!canCreateDraft} ml={2} mr={5} diff --git a/packages/component-faraday-ui/src/AppBarMenu.js b/packages/component-faraday-ui/src/AppBarMenu.js index 48952b453..a01680262 100644 --- a/packages/component-faraday-ui/src/AppBarMenu.js +++ b/packages/component-faraday-ui/src/AppBarMenu.js @@ -75,7 +75,9 @@ const User = styled.div` display: flex; cursor: pointer; ` -const Dropdown = styled.div` +const Dropdown = styled.div.attrs({ + 'data-test-id': props => props['data-test-id'] || 'admin-dropdown', +})` background-color: ${th('appBar.colorBackground')}; border-radius: ${th('borderRadius')}; box-shadow: ${th('boxShadow')}; @@ -86,7 +88,9 @@ const Dropdown = styled.div` z-index: 10; ` -const DropdownOption = styled.div` +const DropdownOption = styled.div.attrs({ + 'data-teast-id': props => props['data-test-id'] || 'dropdown-option', +})` align-items: center; color: ${th('colorText')}; cursor: pointer; diff --git a/packages/component-faraday-ui/src/AuthorTag.js b/packages/component-faraday-ui/src/AuthorTag.js index de77649af..1ac2a56a9 100644 --- a/packages/component-faraday-ui/src/AuthorTag.js +++ b/packages/component-faraday-ui/src/AuthorTag.js @@ -7,6 +7,7 @@ import Text from './Text' const AuthorTag = ({ author: { + id, firstName, lastName, isCorresponding, @@ -14,7 +15,7 @@ const AuthorTag = ({ affiliationNumber, }, }) => ( - <Root> + <Root data-test-id={`author-tag-${id}`}> <Text>{`${firstName} ${lastName}`}</Text> {isSubmitting && <Tag>SA</Tag>} {isCorresponding && <Tag>CA</Tag>} diff --git a/packages/component-faraday-ui/src/AuthorTagList.js b/packages/component-faraday-ui/src/AuthorTagList.js index 4e9cd757a..afa4067c1 100644 --- a/packages/component-faraday-ui/src/AuthorTagList.js +++ b/packages/component-faraday-ui/src/AuthorTagList.js @@ -69,6 +69,7 @@ const AuthorTagList = ({ {withAffiliations && ( <Item flex={0} ml={1}> <ActionLink + data-test-id="affiliations-id" icon={showAffiliation ? 'minus' : 'plus'} onClick={toggleAffiliation} > diff --git a/packages/component-faraday-ui/src/Footer.js b/packages/component-faraday-ui/src/Footer.js index 4a237f254..15c2d7588 100644 --- a/packages/component-faraday-ui/src/Footer.js +++ b/packages/component-faraday-ui/src/Footer.js @@ -7,17 +7,30 @@ import { withJournal } from 'xpub-journal' import { ActionLink, Row, Text } from './' const Footer = ({ journal }) => ( - <Root alignItems="center" justify="center"> - <ActionLink to="https://hindawi.com">Hindawi</ActionLink> - <ActionLink ml={3} to="https://www.hindawi.com/privacy/"> + <Root alignItems="center" data-test-id="footer-row-id" justify="center"> + <ActionLink data-test-id="hindawi-redirect" to="https://hindawi.com"> + Hindawi + </ActionLink> + <ActionLink + data-test-id="privacy-policy" + ml={3} + to="https://www.hindawi.com/privacy/" + > Privacy Policy </ActionLink> - <ActionLink ml={3} to="https://www.hindawi.com/terms/"> + <ActionLink + data-test-id="terms-of-service" + ml={3} + to="https://www.hindawi.com/terms/" + > Terms of Service </ActionLink> <Text ml={4} secondary> {`Support: `} - <ActionLink to={`mailto:${get(journal, 'metadata.email')}`}> + <ActionLink + data-test-id="email-support" + to={`mailto:${get(journal, 'metadata.email')}`} + > {get(journal, 'metadata.email')} </ActionLink> </Text> diff --git a/packages/component-faraday-ui/src/Logo.js b/packages/component-faraday-ui/src/Logo.js index 655780803..906faa2a5 100644 --- a/packages/component-faraday-ui/src/Logo.js +++ b/packages/component-faraday-ui/src/Logo.js @@ -2,8 +2,15 @@ import React from 'react' -const Logo = ({ src, onClick, title, height = 36 }) => ( - <img alt={title} height={height} onClick={onClick} src={src} title={title} /> +const Logo = ({ src, onClick, title, height = 36, ...rest }) => ( + <img + alt={title} + data-test-id={rest['data-test-id'] || 'journal-logo'} + height={height} + onClick={onClick} + src={src} + title={title} + /> ) export default Logo diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptAssignHE.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptAssignHE.js index b30f045ad..1aa83869b 100644 --- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptAssignHE.js +++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptAssignHE.js @@ -11,6 +11,7 @@ const ManuscriptAssignHE = ({ }) => canAssignHE ? ( <ContextualBox + data-test-id="assign-handling-editor-id" expanded={expanded} label="Assign Handling Editor" scrollIntoView diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptEicDecision.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptEicDecision.js index a6f66d373..610e87d7e 100644 --- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptEicDecision.js +++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptEicDecision.js @@ -27,7 +27,11 @@ const ManuscriptEicDecision = ({ options = [], ...rest }) => ( - <ContextualBox label="Your Editorial Decision" {...rest}> + <ContextualBox + data-test-id="your-editorial-decision-id" + label="Your Editorial Decision" + {...rest} + > <Root> <Row justify="flex-start"> <ItemOverrideAlert flex={0} vertical> diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js index cc7976660..3d992b50e 100644 --- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js +++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptHeader.js @@ -28,19 +28,34 @@ const ManuscriptHeader = ({ const { title = 'No title', journal = '', type = '' } = metadata return ( <Fragment> - <Row alignItems="baseline" justify="space-between"> + <Row + alignItems="baseline" + data-test-id="manuscript-title-id" + justify="space-between" + > <H2 mb={1}>{title}</H2> <Tag data-test-id="fragment-status" status> {visibleStatus} </Tag> </Row> {authors.length > 0 && ( - <Row alignItems="center" justify="flex-start" mb={1}> + <Row + alignItems="center" + data-test-id="authors-row-id" + justify="flex-start" + mb={1} + > <AuthorTagList authors={authors} withAffiliations withTooltip /> </Row> )} <Row alignItems="center" justify="flex-start" mb={1}> - {customId && <Text customId mr={1}>{`ID ${customId}`}</Text>} + {customId && ( + <Text + customId + data-test-id="manuscript-id" + mr={1} + >{`ID ${customId}`}</Text> + )} {submitted && ( <DateParser durationThreshold={0} timestamp={submitted}> {timestamp => <Text mr={3}>Submitted on {timestamp}</Text>} diff --git a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptMetadata.js b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptMetadata.js index 205719b95..96df2724c 100644 --- a/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptMetadata.js +++ b/packages/component-faraday-ui/src/manuscriptDetails/ManuscriptMetadata.js @@ -18,7 +18,12 @@ const ManuscriptMetadata = ({ <Fragment> {!!abstract && ( <Item mb={1}> - <ContextualBox label="Abstract" startExpanded transparent> + <ContextualBox + data-test-id="abstract-tab-id" + label="Abstract" + startExpanded + transparent + > <Text mb={1} mt={1}> {abstract} </Text> @@ -27,7 +32,11 @@ const ManuscriptMetadata = ({ )} {conflicts.hasConflicts === 'yes' && ( <Item mb={1}> - <ContextualBox label="Conflict of Interest" transparent> + <ContextualBox + data-test-id="conflict-of-interest-tab-id" + label="Conflict of Interest" + transparent + > <Text mb={1} mt={1}> {get(conflicts, 'message', '')} </Text> @@ -36,7 +45,11 @@ const ManuscriptMetadata = ({ )} {!isEmpty(files) && ( <Item mb={1}> - <ContextualBox label={filesLabel} transparent> + <ContextualBox + data-test-id="files-tab-id" + label={filesLabel} + transparent + > <ManuscriptFileList files={files} getSignedUrl={getSignedUrl} diff --git a/packages/components-faraday/src/components/Dashboard/DashboardFilters.js b/packages/components-faraday/src/components/Dashboard/DashboardFilters.js index f9b3bab6f..2f1794281 100644 --- a/packages/components-faraday/src/components/Dashboard/DashboardFilters.js +++ b/packages/components-faraday/src/components/Dashboard/DashboardFilters.js @@ -8,7 +8,13 @@ const DashboardFilters = ({ changeFilterValue, getDefaultFilterValue, }) => ( - <Row alignItems="flex-end" justify="flex-start" mb={1} mt={2}> + <Row + alignItems="flex-end" + data-test-id="dashboard-filters" + justify="flex-start" + mb={1} + mt={2} + > <Text mr={1} pb={1} secondary> Filters </Text> diff --git a/packages/components-faraday/src/components/SignUp/SignUpStep0.js b/packages/components-faraday/src/components/SignUp/SignUpStep0.js index 51edb75af..36116c1cb 100644 --- a/packages/components-faraday/src/components/SignUp/SignUpStep0.js +++ b/packages/components-faraday/src/components/SignUp/SignUpStep0.js @@ -42,7 +42,7 @@ const Step0 = ({ !isUndefined(initialValues) ? ( <Fragment> <Row mb={2} mt={3}> - <Item mr={1} vertical> + <Item data-test-id="sign-up-first-name-id" mr={1} vertical> <Label required>First Name</Label> <ValidatedField component={TextField} @@ -50,7 +50,7 @@ const Step0 = ({ validate={[requiredValidator]} /> </Item> - <Item ml={1} vertical> + <Item data-test-id="sign-up-last-name-id" ml={1} vertical> <Label required>Last Name</Label> <ValidatedField component={TextField} @@ -61,7 +61,7 @@ const Step0 = ({ </Row> <Row mb={2}> - <ItemOverrideAlert mr={1} vertical> + <ItemOverrideAlert data-test-id="sign-up-title-id" mr={1} vertical> <Label required>Title</Label> <ValidatedField component={input => ( @@ -75,7 +75,7 @@ const Step0 = ({ validate={[requiredValidator]} /> </ItemOverrideAlert> - <ItemOverrideAlert ml={1} vertical> + <ItemOverrideAlert data-test-id="sign-up-country-id" ml={1} vertical> <Label required>Country</Label> <ValidatedField component={input => ( @@ -92,7 +92,7 @@ const Step0 = ({ </Row> <Row> - <Item vertical> + <Item data-test-id="sign-up-affiliation-id" vertical> <Label required>Affiliation</Label> <ValidatedField component={TextField} @@ -102,7 +102,7 @@ const Step0 = ({ </Item> </Row> - <ValidationRow mb={2}> + <ValidationRow data-test-id="sign-up-agree-TC-id" mb={2}> <ValidatedField component={AgreeCheckbox} name="agreeTC" @@ -123,7 +123,11 @@ const Step0 = ({ </Text> </Row> - <Button mt={4} onClick={handleSubmit}> + <Button + data-test-id="sign-up-proceed-to-set-email-and-password-id" + mt={4} + onClick={handleSubmit} + > PROCEED TO SET {type === 'signup' && 'EMAIL AND'} PASSWORD </Button> diff --git a/packages/components-faraday/src/components/SignUp/SignUpStep1.js b/packages/components-faraday/src/components/SignUp/SignUpStep1.js index a9d6d4625..ef2404d87 100644 --- a/packages/components-faraday/src/components/SignUp/SignUpStep1.js +++ b/packages/components-faraday/src/components/SignUp/SignUpStep1.js @@ -12,7 +12,7 @@ const EmailField = input => <TextField {...input} type="email" /> const SignUpForm = () => ( <Fragment> <Row mb={2}> - <Item vertical> + <Item data-test-id="sign-up-email-id" vertical> <Label required>Email</Label> <ValidatedField component={EmailField} @@ -22,7 +22,7 @@ const SignUpForm = () => ( </Item> </Row> <Row mb={2}> - <Item vertical> + <Item data-test-id="sign-up-password-id" vertical> <Label required>Password</Label> <ValidatedField component={PasswordField} @@ -32,7 +32,7 @@ const SignUpForm = () => ( </Item> </Row> <Row mb={2}> - <Item vertical> + <Item data-test-id="sign-up-confirm-password-id" vertical> <Label required>Confirm password</Label> <ValidatedField component={PasswordField} @@ -106,8 +106,17 @@ const Step1 = ({ <Row /> <Row justify={!withoutBack.includes(type) ? 'space-between' : 'center'}> - {!withoutBack.includes(type) && <Button onClick={onBack}>BACK</Button>} - <Button disabled={submitting} onClick={handleSubmit} primary> + {!withoutBack.includes(type) && ( + <Button data-test-id="sign-up-back-button-id" onClick={onBack}> + BACK + </Button> + )} + <Button + data-test-id="sign-up-confirm-button-id" + disabled={submitting} + onClick={handleSubmit} + primary + > {onSubmitText} </Button> </Row> -- GitLab