From f322ce0727438ea3bdb980ce3e07fe6c98d3e593 Mon Sep 17 00:00:00 2001
From: diversemix <diversemix@gmail.com>
Date: Tue, 1 May 2018 09:31:21 +0100
Subject: [PATCH] Fix and extend tests

---
 .../submission/AuthorDetails/AuthorDetails.js          |  6 ++++--
 .../submission/AuthorDetails/AuthorDetailsPage.js      |  2 +-
 .../submission/AuthorDetails/AuthorDetailsSchema.js    |  8 +++++---
 test/submission.e2e.js                                 | 10 +++++++++-
 4 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/app/components/submission/AuthorDetails/AuthorDetails.js b/app/components/submission/AuthorDetails/AuthorDetails.js
index 9a271bc..60dc8de 100644
--- a/app/components/submission/AuthorDetails/AuthorDetails.js
+++ b/app/components/submission/AuthorDetails/AuthorDetails.js
@@ -20,7 +20,9 @@ class AuthorDetails extends React.Component {
   }
 
   get isAssigned() {
-    return this.props.values.assignee !== null
+    // On page load the assignee is undefined, if it is unassigned it
+    // becomes null, see closeAssigneeForm(). Hence the truthy comparison.
+    return this.props.values.assignee != null
   }
 
   openAssigneeForm() {
@@ -118,7 +120,7 @@ const AssigneeForm = ({ handleClose }) => (
         <ValidatedField label="Email" name="assignee.email" />
       </Box>
       <Box width={1 / 2}>
-        <ValidatedField label="Institution" name="institution" />
+        <ValidatedField label="Institution" name="assignee.institution" />
       </Box>
     </Flex>
   </Box>
diff --git a/app/components/submission/AuthorDetails/AuthorDetailsPage.js b/app/components/submission/AuthorDetails/AuthorDetailsPage.js
index 5d90ad2..83e3b12 100644
--- a/app/components/submission/AuthorDetails/AuthorDetailsPage.js
+++ b/app/components/submission/AuthorDetails/AuthorDetailsPage.js
@@ -13,7 +13,7 @@ const GET_AUTHOR_DETAILS = gql`
       firstName
       lastName
       email
-      institute
+      institution
       assignee {
         firstName
         lastName
diff --git a/app/components/submission/AuthorDetails/AuthorDetailsSchema.js b/app/components/submission/AuthorDetails/AuthorDetailsSchema.js
index 2a33891..3700d9b 100644
--- a/app/components/submission/AuthorDetails/AuthorDetailsSchema.js
+++ b/app/components/submission/AuthorDetails/AuthorDetailsSchema.js
@@ -9,13 +9,13 @@ const email = () =>
     .required('Email is required')
     .email('Must be a valid email address')
 
-const institute = () => yup.string().required('Institute is required')
+const institution = () => yup.string().required('Institution is required')
 
 const schema = yup.object().shape({
   firstName: firstName(),
   lastName: lastName(),
   email: email(),
-  institute: institute(),
+  institution: institution(),
   assignee: yup
     .object()
     .nullable()
@@ -23,6 +23,7 @@ const schema = yup.object().shape({
       firstName: firstName(),
       lastName: lastName(),
       email: email(),
+      institution: institution(),
     }),
 })
 
@@ -31,7 +32,7 @@ const empty = {
   firstName: '',
   lastName: '',
   email: '',
-  institute: '',
+  institution: '',
   assignee: null,
 }
 
@@ -40,6 +41,7 @@ const emptyAssignee = {
   firstName: '',
   lastName: '',
   email: '',
+  institution: '',
 }
 
 const clientStateConfig = {
diff --git a/test/submission.e2e.js b/test/submission.e2e.js
index 4da0e88..e27bcc7 100644
--- a/test/submission.e2e.js
+++ b/test/submission.e2e.js
@@ -41,7 +41,15 @@ test('Happy path', async t => {
     .typeText('[name=firstName]', 'Anne')
     .typeText('[name=lastName]', 'Author')
     .typeText('[name=email]', 'anne.author@life.ac.uk')
-    .typeText('[name=institute]', 'University of Life')
+    .typeText('[name=institution]', 'University of Life')
+    .click('[name=cbNotCorrespondingAuthor]')
+
+  // assignee details
+  await t
+    .typeText('[name=assignee\\.firstName]', 'A')
+    .typeText('[name=assignee\\.lastName]', 'Signee')
+    .typeText('[name=assignee\\.email]', 'a.signee@knocks.ac.uk')
+    .typeText('[name=assignee\\.institution]', 'University of Hard Knocks')
     .click('[data-test-id=next]')
 
   // file uploads
-- 
GitLab