diff --git a/automation/Libs/TempTestCase1521532818896.groovy b/automation/Libs/TempTestCase1521532818896.groovy
deleted file mode 100644
index 2eadf528aff95762c0ee76aa0cb937686cbe4415..0000000000000000000000000000000000000000
--- a/automation/Libs/TempTestCase1521532818896.groovy
+++ /dev/null
@@ -1,25 +0,0 @@
-import com.kms.katalon.core.main.TestCaseMain
-import com.kms.katalon.core.logging.KeywordLogger
-import groovy.lang.MissingPropertyException
-import com.kms.katalon.core.testcase.TestCaseBinding
-import com.kms.katalon.core.driver.internal.DriverCleanerCollector
-import com.kms.katalon.core.model.FailureHandling
-import com.kms.katalon.core.configuration.RunConfiguration
-import com.kms.katalon.core.webui.contribution.WebUiDriverCleaner
-import com.kms.katalon.core.mobile.contribution.MobileDriverCleaner
-
-
-DriverCleanerCollector.getInstance().addDriverCleaner(new com.kms.katalon.core.webui.contribution.WebUiDriverCleaner())
-DriverCleanerCollector.getInstance().addDriverCleaner(new com.kms.katalon.core.mobile.contribution.MobileDriverCleaner())
-
-
-RunConfiguration.setExecutionSettingFile('/var/folders/3h/5jvs258x4lng1yz2s32ryr4r0000gn/T/Katalon/Test Cases/Add new manuscript/Add a new manuscript/20180320_100018/execution.properties')
-
-TestCaseMain.beforeStart()
-try {
-    
-	    TestCaseMain.runTestCase('Test Cases/Add new manuscript/Add a new manuscript', new TestCaseBinding('Test Cases/Add new manuscript/Add a new manuscript', [:]), FailureHandling.STOP_ON_FAILURE )
-    
-} catch (Exception e) {
-    TestCaseMain.logError(e, 'Test Cases/Add new manuscript/Add a new manuscript')
-}
diff --git a/automation/Libs/TempTestCase1521534025597.groovy b/automation/Libs/TempTestCase1521534025597.groovy
deleted file mode 100644
index da525f922a3d4bc5f15051c8847e496c379c1b18..0000000000000000000000000000000000000000
--- a/automation/Libs/TempTestCase1521534025597.groovy
+++ /dev/null
@@ -1,25 +0,0 @@
-import com.kms.katalon.core.main.TestCaseMain
-import com.kms.katalon.core.logging.KeywordLogger
-import groovy.lang.MissingPropertyException
-import com.kms.katalon.core.testcase.TestCaseBinding
-import com.kms.katalon.core.driver.internal.DriverCleanerCollector
-import com.kms.katalon.core.model.FailureHandling
-import com.kms.katalon.core.configuration.RunConfiguration
-import com.kms.katalon.core.webui.contribution.WebUiDriverCleaner
-import com.kms.katalon.core.mobile.contribution.MobileDriverCleaner
-
-
-DriverCleanerCollector.getInstance().addDriverCleaner(new com.kms.katalon.core.webui.contribution.WebUiDriverCleaner())
-DriverCleanerCollector.getInstance().addDriverCleaner(new com.kms.katalon.core.mobile.contribution.MobileDriverCleaner())
-
-
-RunConfiguration.setExecutionSettingFile('/var/folders/3h/5jvs258x4lng1yz2s32ryr4r0000gn/T/Katalon/Test Cases/Add a new user/Add a new user/20180320_102025/execution.properties')
-
-TestCaseMain.beforeStart()
-try {
-    
-	    TestCaseMain.runTestCase('Test Cases/Add a new user/Add a new user', new TestCaseBinding('Test Cases/Add a new user/Add a new user', [:]), FailureHandling.STOP_ON_FAILURE )
-    
-} catch (Exception e) {
-    TestCaseMain.logError(e, 'Test Cases/Add a new user/Add a new user')
-}
diff --git a/automation/Libs/TempTestCase1521535083259.groovy b/automation/Libs/TempTestCase1521535083259.groovy
deleted file mode 100644
index 1ee399993a23052b3bb1474b2fe09a165a886670..0000000000000000000000000000000000000000
--- a/automation/Libs/TempTestCase1521535083259.groovy
+++ /dev/null
@@ -1,25 +0,0 @@
-import com.kms.katalon.core.main.TestCaseMain
-import com.kms.katalon.core.logging.KeywordLogger
-import groovy.lang.MissingPropertyException
-import com.kms.katalon.core.testcase.TestCaseBinding
-import com.kms.katalon.core.driver.internal.DriverCleanerCollector
-import com.kms.katalon.core.model.FailureHandling
-import com.kms.katalon.core.configuration.RunConfiguration
-import com.kms.katalon.core.webui.contribution.WebUiDriverCleaner
-import com.kms.katalon.core.mobile.contribution.MobileDriverCleaner
-
-
-DriverCleanerCollector.getInstance().addDriverCleaner(new com.kms.katalon.core.webui.contribution.WebUiDriverCleaner())
-DriverCleanerCollector.getInstance().addDriverCleaner(new com.kms.katalon.core.mobile.contribution.MobileDriverCleaner())
-
-
-RunConfiguration.setExecutionSettingFile('/var/folders/3h/5jvs258x4lng1yz2s32ryr4r0000gn/T/Katalon/Test Cases/Add a new user/Add a new user/20180320_103803/execution.properties')
-
-TestCaseMain.beforeStart()
-try {
-    
-	    TestCaseMain.runTestCase('Test Cases/Add a new user/Add a new user', new TestCaseBinding('Test Cases/Add a new user/Add a new user', [:]), FailureHandling.STOP_ON_FAILURE )
-    
-} catch (Exception e) {
-    TestCaseMain.logError(e, 'Test Cases/Add a new user/Add a new user')
-}
diff --git a/automation/Libs/TempTestCase1521537248328.groovy b/automation/Libs/TempTestCase1521537248328.groovy
deleted file mode 100644
index 1af2e60ac61ff14ecdedf4cc586f7e69b290c76f..0000000000000000000000000000000000000000
--- a/automation/Libs/TempTestCase1521537248328.groovy
+++ /dev/null
@@ -1,25 +0,0 @@
-import com.kms.katalon.core.main.TestCaseMain
-import com.kms.katalon.core.logging.KeywordLogger
-import groovy.lang.MissingPropertyException
-import com.kms.katalon.core.testcase.TestCaseBinding
-import com.kms.katalon.core.driver.internal.DriverCleanerCollector
-import com.kms.katalon.core.model.FailureHandling
-import com.kms.katalon.core.configuration.RunConfiguration
-import com.kms.katalon.core.webui.contribution.WebUiDriverCleaner
-import com.kms.katalon.core.mobile.contribution.MobileDriverCleaner
-
-
-DriverCleanerCollector.getInstance().addDriverCleaner(new com.kms.katalon.core.webui.contribution.WebUiDriverCleaner())
-DriverCleanerCollector.getInstance().addDriverCleaner(new com.kms.katalon.core.mobile.contribution.MobileDriverCleaner())
-
-
-RunConfiguration.setExecutionSettingFile('/var/folders/3h/5jvs258x4lng1yz2s32ryr4r0000gn/T/Katalon/Test Cases/Add new manuscript/Add a new manuscript/20180320_111408/execution.properties')
-
-TestCaseMain.beforeStart()
-try {
-    
-	    TestCaseMain.runTestCase('Test Cases/Add new manuscript/Add a new manuscript', new TestCaseBinding('Test Cases/Add new manuscript/Add a new manuscript', [:]), FailureHandling.STOP_ON_FAILURE )
-    
-} catch (Exception e) {
-    TestCaseMain.logError(e, 'Test Cases/Add new manuscript/Add a new manuscript')
-}
diff --git a/automation/Object Repository/NewUser/addUser.rs b/automation/Object Repository/NewUser/addUser.rs
index a4a847e6b649db3fc113dad74c698022ad1141b6..842a682990d8e8efb2eeb1d33b87d66dc105d4e7 100644
--- a/automation/Object Repository/NewUser/addUser.rs	
+++ b/automation/Object Repository/NewUser/addUser.rs	
@@ -6,14 +6,23 @@
    <elementGuidId>603be35e-a2f1-4b42-9155-c50663f2f154</elementGuidId>
    <selectorCollection>
       <entry>
+<<<<<<< HEAD
          <key>CSS</key>
          <value>button[data-test=&quot;button-add-user&quot;]</value>
       </entry>
       <entry>
          <key>XPATH</key>
+=======
+         <key>XPATH</key>
+         <value>//button/*[1]</value>
+      </entry>
+      <entry>
+         <key>CSS</key>
+         <value>button:first-child</value>
+>>>>>>> e85cabdf8bb80ea1284bf832b47b990be81d0c03
       </entry>
    </selectorCollection>
-   <selectorMethod>CSS</selectorMethod>
+   <selectorMethod>XPATH</selectorMethod>
    <useRalativeImagePath>false</useRalativeImagePath>
    <webElementProperties>
       <isSelected>true</isSelected>
diff --git a/automation/Object Repository/NewUser/adminButton.rs b/automation/Object Repository/NewUser/adminButton.rs
index e1210f6cccca40ddeaa28d2d4d4c617b2b39b4d9..01b317e005ea1fd7db52d4fcf1dd1ab91e7c0dfa 100644
--- a/automation/Object Repository/NewUser/adminButton.rs	
+++ b/automation/Object Repository/NewUser/adminButton.rs	
@@ -6,11 +6,19 @@
    <elementGuidId>9be9ae36-fc08-41ea-9e5e-66e6b3424324</elementGuidId>
    <selectorCollection>
       <entry>
+<<<<<<< HEAD:automation/Object Repository/NewUser/adminButton.rs
          <key>CSS</key>
       </entry>
       <entry>
          <key>XPATH</key>
          <value>//*[@id=&quot;root&quot;]/div/div/div[1]/div[2]/div/span[2]</value>
+=======
+         <key>XPATH</key>
+         <value>//span[contains(text(),'admin')]</value>
+      </entry>
+      <entry>
+         <key>CSS</key>
+>>>>>>> e85cabdf8bb80ea1284bf832b47b990be81d0c03:automation/Object Repository/NewUser/admin.rs
       </entry>
    </selectorCollection>
    <selectorMethod>XPATH</selectorMethod>
diff --git a/automation/Object Repository/NewUser/roleAdmin.rs b/automation/Object Repository/NewUser/roleAdmin.rs
index b65caf6f70145ebdc3750127a04b19a59788bf9b..55581d2b16c2341165a1adb776bf8927a360b735 100644
--- a/automation/Object Repository/NewUser/roleAdmin.rs	
+++ b/automation/Object Repository/NewUser/roleAdmin.rs	
@@ -8,9 +8,14 @@
       <entry>
          <key>XPATH</key>
          <value>div[data-test=&quot;role-selector&quot;] button</value>
+         <value>//div[contains(text(),'Editor in Chief')]</value>
+      </entry>
+      <entry>
+         <key>CSS</key>
+         <value>div[data-test=&quot;role-selector&quot;] div[role=&quot;option&quot;]:last-child</value>
       </entry>
    </selectorCollection>
-   <selectorMethod>XPATH</selectorMethod>
+   <selectorMethod>CSS</selectorMethod>
    <useRalativeImagePath>false</useRalativeImagePath>
    <webElementProperties>
       <isSelected>true</isSelected>
diff --git a/automation/Object Repository/NewUser/users.rs b/automation/Object Repository/NewUser/users.rs
index 2970442d1af00a5b362e36fb18d680ad1188989b..bd2c23d477bd43e405fa7dc04b958aac6ab35372 100644
--- a/automation/Object Repository/NewUser/users.rs	
+++ b/automation/Object Repository/NewUser/users.rs	
@@ -8,13 +8,15 @@
       <entry>
          <key>CSS</key>
          <value>div[data-test=&quot;card-users&quot;]</value>
+         <key>XPATH</key>
+         <value>//span[contains(text(),'Users')]</value>
       </entry>
       <entry>
-         <key>XPATH</key>
-         <value>//div[@class=&quot;sc-eXNvrr hVBWZK&quot;]/span[contains(text(),'Users')]</value>
+         <key>CSS</key>
+         <value>//span[contains(text(),'Users')]</value>
       </entry>
    </selectorCollection>
-   <selectorMethod>CSS</selectorMethod>
+   <selectorMethod>XPATH</selectorMethod>
    <useRalativeImagePath>false</useRalativeImagePath>
    <webElementProperties>
       <isSelected>true</isSelected>
diff --git a/automation/Scripts/Add a new user/Add a new user/Script1521123804636.groovy b/automation/Scripts/Add a new user/Add a new user/Script1521123804636.groovy
index 14866238f2fb9fc3c3e52242434f9fd5ce76345e..6ef2f77f01c18d0f9cafbc0e2dcedf3f69d43939 100644
--- a/automation/Scripts/Add a new user/Add a new user/Script1521123804636.groovy	
+++ b/automation/Scripts/Add a new user/Add a new user/Script1521123804636.groovy	
@@ -20,59 +20,87 @@ import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
 import internal.GlobalVariable as GlobalVariable
 
 WebUI.openBrowser(null)
+
 WebUI.navigateToUrl('https://xpub-faraday.now.sh')
 
-username = findTestObject("NewUser/username")
+username = findTestObject('NewUser/username')
+
 WebUI.click(username)
+
 WebUI.setText(username, 'admin')
 
-password = findTestObject("NewUser/password")
+password = findTestObject('NewUser/password')
+
 WebUI.click(password)
+
 WebUI.setText(password, 'admin123')
 
-login = findTestObject("NewUser/login")
+login = findTestObject('NewUser/login')
+
 WebUI.click(login)
 
 admin = findTestObject("NewUser/adminButton")
 WebUI.click(admin)
 
-adminDashboard = findTestObject("NewUser/adminDashboard")
+adminDashboard = findTestObject('NewUser/adminDashboard')
+
 WebUI.click(adminDashboard)
 
-users = findTestObject("NewUser/users")
+users = findTestObject('NewUser/users')
+
 WebUI.waitForElementVisible(users, 2)
+
 WebUI.click(users)
 
-addUser = findTestObject("NewUser/addUser")
+addUser = findTestObject('NewUser/addUser')
+
 WebUI.click(addUser)
 
-email = findTestObject("NewUser/email")
+email = findTestObject('NewUser/email')
+
 WebUI.click(email)
+<<<<<<< HEAD
 WebUI.setText(email, 'vlad.stegaru+newestUser@thinslices.com')
+=======
+>>>>>>> e85cabdf8bb80ea1284bf832b47b990be81d0c03
+
+WebUI.setText(email, 'bogdan.cochior+author@thinslices.com')
+
+roleDropDown = findTestObject('NewUser/roleDropDown')
 
-roleDropDown = findTestObject("NewUser/roleDropDown")
 WebUI.click(roleDropDown)
 
-author = findTestObject("NewUser/author")
+author = findTestObject('NewUser/author')
+
 WebUI.click(author)
 
-firstName = findTestObject("NewUser/firstName")
+firstName = findTestObject('NewUser/firstName')
+
 WebUI.click(firstName)
-WebUI.setText(firstName, 'Vlad')
 
-lastName = findTestObject("NewUser/lastName")
+WebUI.setText(firstName, 'Bogdan Author')
+
+lastName = findTestObject('NewUser/lastName')
+
 WebUI.click(lastName)
-WebUI.setText(lastName, 'Stegaru')
 
-affiliation = findTestObject("NewUser/affiliation")
+WebUI.setText(lastName, 'Test')
+
+affiliation = findTestObject('NewUser/affiliation')
+
 WebUI.click(affiliation)
+
 WebUI.setText(affiliation, 'College')
 
-title = findTestObject("NewUser/titleDropDown")
+title = findTestObject('NewUser/titleDropDown')
+
 WebUI.click(title)
 
-dr = findTestObject("NewUser/Dr")
+dr = findTestObject('NewUser/Dr')
+
 WebUI.click(dr)
 
-save = findTestObject("NewUser/save")
-WebUI.click(save)
\ No newline at end of file
+save = findTestObject('NewUser/save')
+
+WebUI.click(save)
+
diff --git a/packages/components-faraday/src/components/Admin/AdminDashboard.js b/packages/components-faraday/src/components/Admin/AdminDashboard.js
index b36d692ea13982415d60c8355ff33d8293b159c8..5b138406023bf787f602ed026686d3e47d32a5fe 100644
--- a/packages/components-faraday/src/components/Admin/AdminDashboard.js
+++ b/packages/components-faraday/src/components/Admin/AdminDashboard.js
@@ -12,7 +12,7 @@ const AdminDashboard = ({ history, theme }) => (
         </Icon>
         <span>Journal configuration</span>
       </Card>
-      <Card onClick={() => history.push('/admin/users')}>
+      <Card data-test="card-users" onClick={() => history.push('/admin/users')}>
         <Icon color={theme.colorPrimary} size={6}>
           users
         </Icon>
diff --git a/packages/components-faraday/src/components/Admin/AdminUsers.js b/packages/components-faraday/src/components/Admin/AdminUsers.js
index 0970cde4a1b677301662acab71d5689adce0e4b0..4185c022c7a6c704fdacb35f20039c4d29690789 100644
--- a/packages/components-faraday/src/components/Admin/AdminUsers.js
+++ b/packages/components-faraday/src/components/Admin/AdminUsers.js
@@ -71,7 +71,10 @@ const Users = ({
           <span>Admin Dashboard</span>
           <span>Users</span>
         </BreadCrumbs>
-        <AddButton onClick={() => history.push('/admin/users/add')}>
+        <AddButton
+          data-test="button-add-user"
+          onClick={() => history.push('/admin/users/add')}
+        >
           <Icon color={theme.colorPrimary} size={3}>
             plus-circle
           </Icon>
diff --git a/packages/components-faraday/src/components/AuthorList/AuthorAdder.js b/packages/components-faraday/src/components/AuthorList/AuthorAdder.js
index 2cb1d3258fbd47afa1004fa0fb6af36b29a46314..aef24acfa0d5657ceebb00eaf8bbc2f03b915895 100644
--- a/packages/components-faraday/src/components/AuthorList/AuthorAdder.js
+++ b/packages/components-faraday/src/components/AuthorList/AuthorAdder.js
@@ -110,9 +110,11 @@ export default compose(
         fragmentId,
       ).then(author => {
         const newAuthors = [...authors, author]
-        setFormAuthors(newAuthors)
-        reset()
         setEditMode(false)()
+        setTimeout(() => {
+          setFormAuthors(newAuthors)
+        }, 1000)
+        reset()
       })
     },
   }),
diff --git a/packages/components-faraday/src/components/SignUp/SignUpInvitationForm.js b/packages/components-faraday/src/components/SignUp/SignUpInvitationForm.js
index ac7399aa0c49b8127f5cd160bb5137b0242bec91..6337b777a46e2fc6c42d694799bdee42972ce38c 100644
--- a/packages/components-faraday/src/components/SignUp/SignUpInvitationForm.js
+++ b/packages/components-faraday/src/components/SignUp/SignUpInvitationForm.js
@@ -32,6 +32,7 @@ const SignUpInvitation = ({
     )}
     {step === 1 && (
       <Step1
+        error={error}
         initialValues={initialValues}
         journal={journal}
         onSubmit={submitConfirmation}
diff --git a/packages/components-faraday/src/components/SignUp/SignUpStep1.js b/packages/components-faraday/src/components/SignUp/SignUpStep1.js
index 7109f6c581422a6499788836fa9b40df01988acd..260aa47d1854ca5ceb793cceb0d3e2ba43a648e8 100644
--- a/packages/components-faraday/src/components/SignUp/SignUpStep1.js
+++ b/packages/components-faraday/src/components/SignUp/SignUpStep1.js
@@ -2,9 +2,9 @@ import React from 'react'
 import styled from 'styled-components'
 import { reduxForm } from 'redux-form'
 import { required } from 'xpub-validators'
-import { Button, ValidatedField, TextField } from '@pubsweet/ui'
+import { Button, ValidatedField, TextField, th } from '@pubsweet/ui'
 
-const Step1 = ({ journal, handleSubmit }) => (
+const Step1 = ({ journal, handleSubmit, error }) => (
   <FormContainer onSubmit={handleSubmit}>
     <Row>
       <RowItem>
@@ -16,6 +16,13 @@ const Step1 = ({ journal, handleSubmit }) => (
         />
       </RowItem>
     </Row>
+    {error && (
+      <Row>
+        <RowItem>
+          <Err>{error}</Err>
+        </RowItem>
+      </Row>
+    )}
     <Row>
       <Button primary type="submit">
         CONFIRM
@@ -35,18 +42,23 @@ const FormContainer = styled.form``
 const Row = styled.div`
   display: flex;
   flex-direction: row;
-  margin: 20px 0;
+  margin: ${th('gridUnit')} 0;
   align-items: center;
   justify-content: space-evenly;
 `
 
 const RowItem = styled.div`
   flex: 1;
-  margin-right: 20px;
+  margin-right: ${th('gridUnit')};
 `
 
 const Label = styled.div`
-  font-size: ${({ theme }) => theme.fontSizeBaseSmall};
-  font-family: ${({ theme }) => theme.fontReading};
+  font-size: ${th('fontSizeBaseSmall')};
+  font-family: ${th('fontReading')};
   text-transform: uppercase;
 `
+const Err = styled.div`
+  color: ${th('colorError')};
+  text-align: left;
+  margin-top: calc(${th('gridUnit')}*-1);
+`
diff --git a/packages/components-faraday/src/redux/authors.js b/packages/components-faraday/src/redux/authors.js
index c9a863d768a3efe1a824667ef4e8f52528c0a859..a4219d6ae9872ef33d02364f2371bc01531bc1bd 100644
--- a/packages/components-faraday/src/redux/authors.js
+++ b/packages/components-faraday/src/redux/authors.js
@@ -1,5 +1,4 @@
 import { get } from 'lodash'
-import * as api from 'pubsweet-client/src/helpers/api'
 
 // constants
 const REQUEST = 'authors/REQUEST'
@@ -20,19 +19,8 @@ export const authorSuccess = () => ({
   type: SUCCESS,
 })
 
-export const addAuthor = (author, collectionId, fragmentId) => dispatch => {
-  dispatch(authorRequest())
-  return api
-    .create(
-      `/collections/${collectionId}/fragments/${fragmentId}/authors`,
-      author,
-    )
-    .then(author => {
-      dispatch(authorSuccess())
-      return author
-    })
-    .catch(err => dispatch(authorFaiure(err)))
-}
+export const addAuthor = (author, collectionId, fragmentId) => dispatch =>
+  Promise.resolve(author)
 
 // selectors
 export const getFragmentAuthors = (state, fragmentId) =>
diff --git a/packages/xpub-faraday/app/config/journal/submit-wizard.js b/packages/xpub-faraday/app/config/journal/submit-wizard.js
index b4b8cc37aa111c3e522740c2d8e3cf01b1eb8546..ab50d4ab1c3067a9977febbb0ae7444d80880189 100644
--- a/packages/xpub-faraday/app/config/journal/submit-wizard.js
+++ b/packages/xpub-faraday/app/config/journal/submit-wizard.js
@@ -138,7 +138,7 @@ export default {
         },
         {
           fieldId: 'metadata.abstract',
-          renderComponent: TitleEditor,
+          renderComponent: AbstractEditor,
           title: 'Abstract',
           placeholder: 'Write an abstract',
           validate: [requiredBasedOnType],