From 612fbce02a8193e227d8d4ceab2aeacc08f10fcf Mon Sep 17 00:00:00 2001
From: Jure Triglav <juretriglav@gmail.com>
Date: Wed, 10 Jun 2020 14:07:37 +0200
Subject: [PATCH] chore: remove testcafe tests

---
 test/author.test.js                           | 142 --------------
 test/authsome/index.test.js                   | 151 ---------------
 .../manuscript-setup/setup-one-submitted.js   | 107 ----------
 .../manuscript-setup/setup-one-unsubmitted.js | 106 ----------
 .../setup-two-submitted-assigned-reviewer.js  | 142 --------------
 .../manuscript-setup/setup-two-unsubmitted.js | 183 ------------------
 test/fixtures/submissionWrongFormat.txt       |   1 -
 test/fixtures/testSubmission1.docx            | Bin 4100 -> 0 bytes
 test/fixtures/testSubmission2.docx            | Bin 4111 -> 0 bytes
 test/guest.test.js                            |  23 ---
 test/helpers/jest-setup.js                    |   3 -
 test/helpers/prosemirror-helper.js            |  13 --
 test/helpers/setup.js                         |  43 ----
 test/helpers/submission.js                    |  73 -------
 test/pageObjects/confirmation.js              |  10 -
 test/pageObjects/controlPanel.js              |  11 --
 test/pageObjects/dashboard.js                 |  66 -------
 test/pageObjects/index.js                     |   6 -
 test/pageObjects/login.js                     |  21 --
 test/pageObjects/review.js                    |  28 ---
 test/pageObjects/reviewers.js                 |  16 --
 test/pageObjects/submission.js                |  38 ----
 test/reviewer.test.js                         |  64 ------
 23 files changed, 1247 deletions(-)
 delete mode 100644 test/author.test.js
 delete mode 100644 test/authsome/index.test.js
 delete mode 100644 test/fixtures/manuscript-setup/setup-one-submitted.js
 delete mode 100644 test/fixtures/manuscript-setup/setup-one-unsubmitted.js
 delete mode 100644 test/fixtures/manuscript-setup/setup-two-submitted-assigned-reviewer.js
 delete mode 100644 test/fixtures/manuscript-setup/setup-two-unsubmitted.js
 delete mode 100644 test/fixtures/submissionWrongFormat.txt
 delete mode 100644 test/fixtures/testSubmission1.docx
 delete mode 100644 test/fixtures/testSubmission2.docx
 delete mode 100644 test/guest.test.js
 delete mode 100644 test/helpers/jest-setup.js
 delete mode 100644 test/helpers/prosemirror-helper.js
 delete mode 100644 test/helpers/setup.js
 delete mode 100644 test/helpers/submission.js
 delete mode 100644 test/pageObjects/confirmation.js
 delete mode 100644 test/pageObjects/controlPanel.js
 delete mode 100644 test/pageObjects/dashboard.js
 delete mode 100644 test/pageObjects/index.js
 delete mode 100644 test/pageObjects/login.js
 delete mode 100644 test/pageObjects/review.js
 delete mode 100644 test/pageObjects/reviewers.js
 delete mode 100644 test/pageObjects/submission.js
 delete mode 100644 test/reviewer.test.js

diff --git a/test/author.test.js b/test/author.test.js
deleted file mode 100644
index 58a32e12ca..0000000000
--- a/test/author.test.js
+++ /dev/null
@@ -1,142 +0,0 @@
-import config from 'config'
-import { Selector } from 'testcafe'
-import { createSubmission } from './helpers/submission'
-import { startServer, setup, teardown } from './helpers/setup'
-import { setupWithTwoUnsubmittedManuscripts } from './fixtures/manuscript-setup/setup-two-unsubmitted'
-import { login, dashboard, submission, confirmation } from './pageObjects'
-
-const goodInkConfig = {
-  inkEndpoint: 'http://inkdemo-api.coko.foundation/',
-  email: 'editoria@coko.foundation',
-  password: 'editoria',
-  recipes: {
-    'editoria-typescript': '2',
-  },
-}
-
-let author
-
-fixture
-  .only('Author user')
-  .before(async () => {
-    config['pubsweet-component-ink-backend'] = goodInkConfig
-    await startServer()
-  })
-  .afterEach(teardown)
-
-test.skip
-  .before(async t => {
-    const result = await setup()
-    author = result.userData
-    await login.doLogin(author.username, author.password)
-  })('create new submission', async t => {
-    await t.expect(Selector(dashboard.mySubmissionsTitle).exists).notOk()
-
-    await createSubmission('./fixtures/testSubmission1.docx')
-
-    await t.click(dashboard.collabraHome)
-
-    await t
-      .expect(Selector(dashboard.submissionStatus(1)).exists)
-      .ok()
-      .expect(dashboard.submissionStatus(1).innerText)
-      .contains('UNSUBMITTED')
-      .expect(Selector(dashboard.submissionSummaryInfoLink(0)).exists)
-      .ok()
-  })
-  .after(async t => {
-    teardown()
-  })
-
-test
-  .before(async t => {
-    const result = await setup()
-    author = result.userData
-    await login.doLogin(author.username, author.password)
-  })('Failed new submission', async t => {
-    await t
-      .setFilesToUpload(dashboard.createSubmission, ['./testSubmission1.docx'])
-      .expect(await Selector('div').withText('Internal Server Error').exists)
-    await t.expect(dashboard.createSubmission).exists
-  })
-  .after(async t => {
-    config.util.extendDeep(
-      {},
-      JSON.parse(JSON.stringify(config.get('pubsweet-component-ink-backend'))),
-      JSON.parse(JSON.stringify(config.get('pubsweet-component-ink-backend'))),
-    )
-    teardown()
-  })
-
-test.skip
-  .before(async t => {
-    await setupWithTwoUnsubmittedManuscripts()
-    await login.doLogin('john', 'johnjohn')
-  })('Author submits manuscript', async t => {
-    await t
-      .wait(1000)
-      .click(dashboard.submissionSummaryInfoLink(1))
-      .wait(1000)
-      .click(submission.submit.withText('SUBMIT YOUR MANUSCRIPT'))
-      .wait(1000)
-      .expect(confirmation.returnToSubmission.exists)
-
-    await t.wait(500).click(confirmation.returnToSubmission)
-
-    await t
-      .wait(500)
-      .expect(
-        Selector(submission.submit.withText('SUBMIT YOUR MANUSCRIPT')).exists,
-      )
-      .ok()
-
-    await t.click(submission.submit.withText('SUBMIT YOUR MANUSCRIPT'))
-
-    await t
-      .wait(1000)
-      .expect(confirmation.submitManuscript.exists)
-      .ok()
-
-    await t.wait(1000).click(confirmation.submitManuscript)
-
-    await t
-      .expect(Selector(dashboard.myManuscriptsTitle).exists) // fails when admin user == false
-      .ok()
-
-    await t
-      .expect(Selector(dashboard.manuscript(1)).exists)
-      .ok()
-      .expect(Selector(dashboard.manuscriptStatus(1)).exists)
-      .ok()
-      .expect(dashboard.manuscriptStatus(1).innerText)
-      .contains('SUBMITTED')
-
-      .expect(Selector(dashboard.submissionStatus(1, 2)).exists)
-      .ok()
-      .expect(dashboard.submissionStatus(1, 2).innerText)
-      .contains('UNSUBMITTED')
-
-    await t
-      .expect(Selector(dashboard.submissionStatus(1)).exists)
-      .ok()
-      .expect(dashboard.submissionStatus(1).innerText)
-      .contains('SUBMITTED')
-      .wait(5000)
-
-    await t
-      .expect(Selector(dashboard.submissionSummaryInfoLink(2)).exists)
-      .ok()
-      .click(dashboard.submissionSummaryInfoLink(2))
-      .wait(5000)
-      .expect(Selector(submission.authorFirstName).exists)
-      .ok()
-
-    await t
-      .expect(
-        Selector(submission.submit.withText('submit your manuscript')).exists,
-      )
-      .notOk()
-  })
-  .after(async t => {
-    teardown()
-  })
diff --git a/test/authsome/index.test.js b/test/authsome/index.test.js
deleted file mode 100644
index d6056b2ee6..0000000000
--- a/test/authsome/index.test.js
+++ /dev/null
@@ -1,151 +0,0 @@
-const Authsome = require('authsome')
-
-const authsomeConfig = require('config').get('authsome')
-
-const collections = [
-  {
-    id: 'collection1',
-    fragments: ['fragment1'],
-  },
-  {
-    id: 'collection2',
-    fragments: [],
-  },
-]
-
-const teams = [
-  {
-    id: 'team1',
-    role: 'handlingEditor',
-    object: {
-      id: 'collection2',
-      type: 'collection',
-    },
-  },
-  {
-    id: 'team2',
-    role: 'seniorEditor',
-    object: {
-      id: 'collection1',
-      type: 'collection',
-    },
-  },
-  {
-    id: 'team3',
-    role: 'managingEditor',
-    object: {
-      id: 'collection1',
-      type: 'collection',
-    },
-  },
-  {
-    id: 'team4',
-    role: 'reviewer',
-    object: {
-      id: 'fragment1',
-      type: 'fragment',
-    },
-  },
-  {
-    id: 'team5',
-    role: 'managingEditor',
-    object: {
-      id: 'collection2',
-      type: 'collection',
-    },
-  },
-]
-
-const users = [
-  {
-    id: 'user1',
-    username: 'handlingEditor1',
-    teams: ['team1'],
-  },
-  {
-    id: 'user2',
-    username: 'seniorEditor1',
-    teams: ['team2'],
-  },
-  {
-    id: 'user3',
-    username: 'managingEditor1',
-    teams: ['team3', 'team5'],
-  },
-  {
-    id: 'user4',
-    username: 'reviewerEditor1',
-    teams: ['team4'],
-  },
-  {
-    id: 'adminId',
-    username: 'admin',
-    admin: true,
-  },
-]
-
-const authsome = new Authsome(
-  { ...authsomeConfig, mode: require('../../config/authsome.js') },
-  {
-    models: {
-      User: { find: id => users.find(user => user.id === id) },
-      Team: { find: id => teams.find(team => team.id === id) },
-    },
-  },
-)
-
-describe('admin', () => {
-  it('allows everything to an admin', async () => {
-    const permission = await authsome.can(
-      'adminId',
-      'DELETE',
-      'thisSensitiveThing',
-    )
-    expect(permission).toBe(true)
-  })
-})
-
-describe('Handling Editor', () => {
-  it('lists only collections where user is a member of the handling editors team', async () => {
-    const permission = await authsome.can('user1', 'GET', {
-      path: '/collections',
-    })
-
-    const filteredCollections = await permission.filter(collections)
-
-    expect(filteredCollections).toEqual([collections[1]])
-  })
-})
-
-describe('Reviewer Editor', () => {
-  it('lists only collections where user is a member of the reviewer editors team', async () => {
-    const permission = await authsome.can('user4', 'GET', {
-      path: '/collections',
-    })
-
-    const filteredCollections = await permission.filter(collections)
-
-    expect(filteredCollections).toEqual([collections[0]])
-  })
-})
-
-describe('Senior Editor', () => {
-  it('lists only collections where user is a member of the senior editors team', async () => {
-    const permission = await authsome.can('user2', 'GET', {
-      path: '/collections',
-    })
-    const filteredCollections = await permission.filter(collections)
-    expect(filteredCollections).toEqual([collections[0]])
-  })
-})
-
-describe('Managing Editor', () => {
-  it('can list all collections', async () => {
-    const permission = await authsome.can('user3', 'GET', {
-      path: '/collections',
-    })
-    const filteredCollections = await permission.filter(collections)
-
-    expect(filteredCollections).toEqual(collections)
-  })
-})
diff --git a/test/fixtures/manuscript-setup/setup-one-submitted.js b/test/fixtures/manuscript-setup/setup-one-submitted.js
deleted file mode 100644
index 674afe640c..0000000000
--- a/test/fixtures/manuscript-setup/setup-one-submitted.js
+++ /dev/null
@@ -1,107 +0,0 @@
-const logger = require('@pubsweet/logger')
-const { User, Team } = require('pubsweet-server/src/models')
-// const { setupDb } = require('@pubsweet/db-manager')
-const Manuscript = require('../../../server/manuscript/src/manuscript')
-const File = require('../../../server/file/src/file')
-const Journal = require('../../../server/journal/src/journal')
-
-export async function setupWithOneSubmittedManuscript() {
-  const journalData = {
-    title: 'xPub Collabra',
-    meta: {},
-  }
-
-  const journal = new Journal(journalData)
-  await journal.save()
-
-  let user = await User.findByUsername('john')
-  if (!user) {
-    user = await new User({
-      username: 'john',
-      email: 'john@example.com',
-      password: 'johnjohn',
-      admin: true,
-    }).save()
-  }
-
-  const emptyManuscript = {
-    meta: {
-      title: 'This is a dummy document for testing purposes',
-      abstract:
-        'This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes',
-      keywords: 'keywords...',
-      articleType: 'original-research',
-      articleSection: ['clinical-psychology'],
-      declarations: {
-        openData: 'no',
-        preregistered: 'no',
-        researchNexus: 'no',
-        openPeerReview: 'no',
-        streamlinedReview: 'no',
-        previouslySubmitted: 'no',
-      },
-      notes: [
-        {
-          notesType: 'fundingAcknowledgement',
-          content: '<p>funding acknowledgement...</p>',
-        },
-        {
-          notesType: 'specialInstructions',
-          content: 'special instructions...',
-        },
-      ],
-      source:
-        '<html xmlns="http://www.w3.org/1999/xhtml">\n<head><title>This is a dummy document for testing purposes</title>\n<meta charset="UTF-8"/></head>\n<body>\n<container id="main">\n<h1>This is a dummy document for testing purposes</h1></container>\n\n</body></html>',
-    },
-    status: 'submitted',
-    authors: [
-      {
-        email: 'email@example.com',
-        lastName: 'John',
-        firstName: 'Cena',
-        affiliation: 'WWE',
-      },
-    ],
-    suggestions: {
-      editors: {
-        suggested: 'Marge Simpson',
-      },
-      reviewers: {
-        suggested: 'Daffy Duck',
-      },
-    },
-  }
-
-  const manuscript = await new Manuscript(emptyManuscript).save()
-
-  const newFile = Object.assign(
-    {},
-    {
-      url: '/uploads/ec0a2df13f11ef9feaf4411b3ffd8c47.docx',
-      filename: 'testSubmission1.docx',
-      mimeType:
-        'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
-    },
-    {
-      fileType: 'manuscript',
-      object: 'Manuscript',
-      objectId: manuscript.id,
-    },
-  )
-  await new File(newFile).save()
-
-  // create Team Author Owner
-  const team = new Team({
-    role: 'author',
-    name: 'Author',
-    object: {
-      objectId: manuscript.id,
-      objectType: 'Manuscript',
-    },
-    members: [user.id],
-  })
-
-  await team.save()
-
-  logger.info('Seeding complete.')
-}
diff --git a/test/fixtures/manuscript-setup/setup-one-unsubmitted.js b/test/fixtures/manuscript-setup/setup-one-unsubmitted.js
deleted file mode 100644
index fb279a6150..0000000000
--- a/test/fixtures/manuscript-setup/setup-one-unsubmitted.js
+++ /dev/null
@@ -1,106 +0,0 @@
-const logger = require('@pubsweet/logger')
-const { User, Team } = require('pubsweet-server/src/models')
-// const { setupDb } = require('@pubsweet/db-manager')
-const Manuscript = require('../../../server/manuscript/src/manuscript')
-const File = require('../../../server/file/src/file')
-const Journal = require('../../../server/journal/src/journal')
-
-export async function setupWithOneUnsubmittedManuscript() {
-  const journalData = {
-    title: 'xPub Collabra',
-    meta: {},
-  }
-
-  const journal = new Journal(journalData)
-  await journal.save()
-
-  let user = await User.findByUsername('john')
-  if (!user) {
-    user = await new User({
-      username: 'john',
-      email: 'john@example.com',
-      password: 'johnjohn',
-      admin: true,
-    }).save()
-  }
-  const emptyManuscript = {
-    meta: {
-      title: 'This is a dummy document for testing purposes',
-      abstract:
-        'This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes',
-      keywords: 'keywords...',
-      articleType: 'original-research',
-      articleSection: ['clinical-psychology'],
-      declarations: {
-        openData: 'no',
-        preregistered: 'no',
-        researchNexus: 'no',
-        openPeerReview: 'no',
-        streamlinedReview: 'no',
-        previouslySubmitted: 'no',
-      },
-      notes: [
-        {
-          notesType: 'fundingAcknowledgement',
-          content: '<p>funding acknowledgement...</p>',
-        },
-        {
-          notesType: 'specialInstructions',
-          content: 'special instructions...',
-        },
-      ],
-      source:
-        '<html xmlns="http://www.w3.org/1999/xhtml">\n<head><title>This is a dummy document for testing purposes</title>\n<meta charset="UTF-8"/></head>\n<body>\n<container id="main">\n<h1>This is a dummy document for testing purposes</h1></container>\n\n</body></html>',
-    },
-    status: 'new',
-    authors: [
-      {
-        email: 'email@example.com',
-        lastName: 'John',
-        firstName: 'Cena',
-        affiliation: 'WWE',
-      },
-    ],
-    suggestions: {
-      editors: {
-        suggested: 'Marge Simpson',
-      },
-      reviewers: {
-        suggested: 'Daffy Duck',
-      },
-    },
-  }
-
-  const manuscript = await new Manuscript(emptyManuscript).save()
-
-  const newFile = Object.assign(
-    {},
-    {
-      url: '/uploads/ec0a2df13f11ef9feaf4411b3ffd8c47.docx',
-      filename: 'testSubmission1.docx',
-      mimeType:
-        'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
-    },
-    {
-      fileType: 'manuscript',
-      object: 'Manuscript',
-      objectId: manuscript.id,
-    },
-  )
-  await new File(newFile).save()
-
-  // create Team Author Owner
-  const team = new Team({
-    role: 'author',
-    name: 'Author',
-    object: {
-      objectId: manuscript.id,
-      objectType: 'Manuscript',
-    },
-    members: [user.id],
-  })
-
-  await team.save()
-
-  logger.info('Seeding complete.')
-}
diff --git a/test/fixtures/manuscript-setup/setup-two-submitted-assigned-reviewer.js b/test/fixtures/manuscript-setup/setup-two-submitted-assigned-reviewer.js
deleted file mode 100644
index 8dd80262d0..0000000000
--- a/test/fixtures/manuscript-setup/setup-two-submitted-assigned-reviewer.js
+++ /dev/null
@@ -1,142 +0,0 @@
-const logger = require('@pubsweet/logger')
-const { Collection, Fragment, User } = require('pubsweet-server/src/models')
-// const { setupDb } = require('@pubsweet/db-manager')
-
-export async function setupWithTwoSubmittedManuscriptsReviewerAssigned() {
-  let user = await User.findByUsername('john')
-  if (!user) {
-    user = await new User({
-      username: 'john',
-      email: 'john@example.com',
-      password: 'johnjohn',
-      admin: true,
-    }).save()
-  }
-
-  const collection1 = new Collection({
-    title: 'My Blog',
-    owners: [user.id],
-  })
-  await collection1.save()
-
-  const collection2 = new Collection({
-    title: 'My Blog 2',
-    owners: [user.id],
-  })
-  await collection2.save()
-
-  const fragment1 = await new Fragment({
-    type: 'fragment',
-    files: {
-      manuscript: {
-        url: '/uploads/ec0a2df13f11ef9feaf4411b3ffd8c47.docx',
-        name: 'testSubmission1.docx',
-      },
-      supplementary: [],
-    },
-    notes: {
-      specialInstructions: 'special instructions...',
-      fundingAcknowledgement: '<p>funding acknowledgement...</p>',
-    },
-    owners: [user.id],
-    source:
-      '<html xmlns="http://www.w3.org/1999/xhtml">\n<head><title>This is a dummy document for testing purposes</title>\n<meta charset="UTF-8"/></head>\n<body>\n<container id="main">\n<h1>This is a dummy document for testing purposes</h1></container>\n\n</body></html>',
-    version: 1,
-    metadata: {
-      title: 'This is a dummy document for testing purposes',
-      authors: [
-        {
-          email: 'email@example.com',
-          lastName: 'John',
-          firstName: 'Cena',
-          affiliation: 'WWE',
-        },
-      ],
-      abstract:
-        'This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes',
-      keywords: ['keywords...'],
-      articleType: 'original-research',
-      articleSection: ['clinical-psychology'],
-    },
-    submitted: '2018-05-23T07:17:38.601Z',
-    suggestions: {
-      editors: {
-        suggested: ['Marge Simpson'],
-      },
-      reviewers: {
-        suggested: ['Daffy Duck'],
-      },
-    },
-    declarations: {
-      openData: 'no',
-      preregistered: 'no',
-      researchNexus: 'no',
-      openPeerReview: 'no',
-      streamlinedReview: 'no',
-      previouslySubmitted: 'no',
-    },
-    fragmentType: 'version',
-  }).save()
-
-  const fragment2 = await new Fragment({
-    type: 'fragment',
-    files: {
-      manuscript: {
-        url: '/uploads/3f0a64b9b26b45d08b292f55219d5dc9.docx',
-        name: 'testSubmission1.docx',
-      },
-      supplementary: [],
-    },
-    notes: {
-      specialInstructions: 'confidential special instructions...',
-      fundingAcknowledgement: '<p>funding body acknowledgement...</p>',
-    },
-    owners: [],
-    source:
-      '<html xmlns="http://www.w3.org/1999/xhtml">\n<head><title>This is a test document</title>\n<meta charset="UTF-8"/></head>\n<body>\n<container id="main">\n<h1>This is a test document</h1></container>\n\n</body></html>',
-    version: 1,
-    metadata: {
-      title: 'This is a test document',
-      authors: [
-        {
-          email: 'example@email.com',
-          lastName: 'Simpson',
-          firstName: 'Homer',
-          affiliation: 'Power Plant',
-        },
-      ],
-      abstract:
-        'This is a test document This is a test document This is a test document This is a test document This is a test document This is a test document This is a test document',
-      keywords: ['keywords...'],
-      articleType: 'review',
-      articleSection: ['clinical-psychology', 'methodology'],
-    },
-    submitted: '2018-05-23T07:17:38.601Z',
-    suggestions: {
-      editors: {
-        suggested: ['Lisa Simpso'],
-      },
-      reviewers: {
-        opposed: ['Marge Simpson'],
-        suggested: ['Moe Szyslak'],
-      },
-    },
-    declarations: {
-      openData: 'no',
-      preregistered: 'no',
-      researchNexus: 'no',
-      openPeerReview: 'no',
-      streamlinedReview: 'no',
-      previouslySubmitted: 'no',
-    },
-    fragmentType: 'version',
-  }).save()
-
-  collection1.addFragment(fragment1)
-  collection2.addFragment(fragment2)
-
-  await collection1.save()
-  await collection2.save()
-
-  logger.info('Seeding complete.')
-}
diff --git a/test/fixtures/manuscript-setup/setup-two-unsubmitted.js b/test/fixtures/manuscript-setup/setup-two-unsubmitted.js
deleted file mode 100644
index b008cd6f71..0000000000
--- a/test/fixtures/manuscript-setup/setup-two-unsubmitted.js
+++ /dev/null
@@ -1,183 +0,0 @@
-const logger = require('@pubsweet/logger')
-const { User, Team } = require('pubsweet-server/src/models')
-const Manuscript = require('../../../server/manuscript/src/manuscript')
-const File = require('../../../server/file/src/file')
-const Journal = require('../../../server/journal/src/journal')
-
-export async function setupWithTwoUnsubmittedManuscripts() {
-  const journalData = {
-    title: 'xPub Collabra',
-    meta: {},
-  }
-
-  const journal = new Journal(journalData)
-  await journal.save()
-
-  const user = await new User({
-    username: 'john',
-    email: 'john@example.com',
-    password: 'johnjohn',
-    admin: true,
-  }).save()
-
-  const emptyManuscript1 = {
-    meta: {
-      title: 'This is a dummy document for testing purposes',
-      abstract:
-        'This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes This is a dummy document for testing purposes',
-      keywords: 'keywords...',
-      articleType: 'original-research',
-      articleSection: ['clinical-psychology'],
-      declarations: {
-        openData: 'no',
-        preregistered: 'no',
-        researchNexus: 'no',
-        openPeerReview: 'no',
-        streamlinedReview: 'no',
-        previouslySubmitted: 'no',
-      },
-      notes: [
-        {
-          notesType: 'fundingAcknowledgement',
-          content: '<p>funding acknowledgement...</p>',
-        },
-        {
-          notesType: 'specialInstructions',
-          content: 'special instructions...',
-        },
-      ],
-      source:
-        '<html xmlns="http://www.w3.org/1999/xhtml">\n<head><title>This is a dummy document for testing purposes</title>\n<meta charset="UTF-8"/></head>\n<body>\n<container id="main">\n<h1>This is a dummy document for testing purposes</h1></container>\n\n</body></html>',
-    },
-    status: 'new',
-    authors: [
-      {
-        email: 'email@example.com',
-        lastName: 'John',
-        firstName: 'Cena',
-        affiliation: 'WWE',
-      },
-    ],
-    suggestions: {
-      editors: {
-        suggested: 'Marge Simpson',
-      },
-      reviewers: {
-        suggested: 'Daffy Duck',
-      },
-    },
-  }
-
-  const manuscript1 = await new Manuscript(emptyManuscript1).save()
-
-  const newFile1 = Object.assign(
-    {},
-    {
-      url: '/uploads/ec0a2df13f11ef9feaf4411b3ffd8c47.docx',
-      filename: 'testSubmission1.docx',
-      mimeType:
-        'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
-    },
-    {
-      fileType: 'manuscript',
-      object: 'Manuscript',
-      objectId: manuscript1.id,
-    },
-  )
-  await new File(newFile1).save()
-
-  // create Team Author Owner
-  const team1 = new Team({
-    role: 'author',
-    name: 'Author',
-    object: {
-      objectId: manuscript1.id,
-      objectType: 'Manuscript',
-    },
-    members: [user.id],
-  })
-
-  await team1.save()
-
-  const emptyManuscript2 = {
-    meta: {
-      title: 'This is a test document',
-      abstract:
-        'This is a test document This is a test document This is a test document This is a test document This is a test document This is a test document This is a test document',
-      keywords: 'keywords...',
-      articleType: 'review',
-      articleSection: ['clinical-psychology', 'methodology'],
-      declarations: {
-        openData: 'no',
-        preregistered: 'no',
-        researchNexus: 'no',
-        openPeerReview: 'no',
-        streamlinedReview: 'no',
-        previouslySubmitted: 'no',
-      },
-      notes: [
-        {
-          notesType: 'fundingAcknowledgement',
-          content: '<p>funding acknowledgement...</p>',
-        },
-        {
-          notesType: 'specialInstructions',
-          content: 'special instructions...',
-        },
-      ],
-      source:
-        '<html xmlns="http://www.w3.org/1999/xhtml">\n<head><title>This is a dummy document for testing purposes</title>\n<meta charset="UTF-8"/></head>\n<body>\n<container id="main">\n<h1>This is a dummy document for testing purposes</h1></container>\n\n</body></html>',
-    },
-    status: 'new',
-    authors: [
-      {
-        email: 'example@email.com',
-        lastName: 'Simpson',
-        firstName: 'Homer',
-        affiliation: 'Power Plant',
-      },
-    ],
-    suggestions: {
-      editors: {
-        suggested: 'Lisa Simpso',
-      },
-      reviewers: {
-        opposed: 'Marge Simpson',
-        suggested: 'Moe Szyslak',
-      },
-    },
-    created: new Date(),
-  }
-  const manuscript2 = await new Manuscript(emptyManuscript2).save()
-
-  const newFile2 = Object.assign(
-    {},
-    {
-      url: '/uploads/3f0a64b9b26b45d08b292f55219d5dc9.docx',
-      filename: 'testSubmission1.docx',
-      mimeType:
-        'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
-    },
-    {
-      fileType: 'manuscript',
-      object: 'Manuscript',
-      objectId: manuscript2.id,
-    },
-  )
-  await new File(newFile2).save()
-
-  // create Team Author Owner
-  const team2 = new Team({
-    role: 'author',
-    name: 'Author',
-    object: {
-      objectId: manuscript2.id,
-      objectType: 'Manuscript',
-    },
-    members: [user.id],
-  })
-
-  await team2.save()
-
-  logger.info('Seeding complete.')
-}
diff --git a/test/fixtures/submissionWrongFormat.txt b/test/fixtures/submissionWrongFormat.txt
deleted file mode 100644
index 67154809f4..0000000000
--- a/test/fixtures/submissionWrongFormat.txt
+++ /dev/null
@@ -1 +0,0 @@
-bad submission
\ No newline at end of file
diff --git a/test/fixtures/testSubmission1.docx b/test/fixtures/testSubmission1.docx
deleted file mode 100644
index fd8cc4bc3563af209358bb2902a6864eaf9c0c5a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4100
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
bra}Log=ef!MGT6J3`G1W64O+{K>GDRkiVpC

diff --git a/test/fixtures/testSubmission2.docx b/test/fixtures/testSubmission2.docx
deleted file mode 100644
index e3b2025d3c65579db5fa07e99a295bc85606315b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4111
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

diff --git a/test/guest.test.js b/test/guest.test.js
deleted file mode 100644
index 4a32c78149..0000000000
--- a/test/guest.test.js
+++ /dev/null
@@ -1,23 +0,0 @@
-import faker from 'faker'
-import { login } from './pageObjects'
-import { startServer, setup } from './helpers/setup'
-
-fixture('Guest user')
-  .before(startServer)
-  .beforeEach(async () => {
-    await setup()
-  })
-
-test('Signup journey', async t => {
-  const user = {
-    username: faker.internet.domainWord(),
-    email: faker.internet.exampleEmail(),
-    password: faker.internet.password(),
-  }
-
-  // cannot log in
-  await login
-    .doLogin(user.username, user.password)
-    .expect(login.alert.innerText)
-    .contains('Unauthorized')
-})
diff --git a/test/helpers/jest-setup.js b/test/helpers/jest-setup.js
deleted file mode 100644
index 062566dce6..0000000000
--- a/test/helpers/jest-setup.js
+++ /dev/null
@@ -1,3 +0,0 @@
-const path = require('path')
-
-process.env.NODE_CONFIG_DIR = path.resolve(__dirname, '..', '..', 'config')
diff --git a/test/helpers/prosemirror-helper.js b/test/helpers/prosemirror-helper.js
deleted file mode 100644
index ee01768e1e..0000000000
--- a/test/helpers/prosemirror-helper.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { ClientFunction } from 'testcafe'
-
-export async function prepareEditor(selector, text) {
-  const hasPlaceholder = await selector.find('.placeholder').exists
-  const options = {}
-  if (hasPlaceholder) {
-    await goToEditMode(selector.child())
-    options.replace = true
-  }
-  return [selector, text, options]
-}
-
-const goToEditMode = ClientFunction(selector => (selector().innerHTML += ''))
diff --git a/test/helpers/setup.js b/test/helpers/setup.js
deleted file mode 100644
index d308fb67a7..0000000000
--- a/test/helpers/setup.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import faker from 'faker'
-import DestinationRequest from 'testcafe-hammerhead/lib/request-pipeline/destination-request'
-import start from 'pubsweet/src/startup/start'
-import { User } from 'pubsweet-server'
-import { createTables } from '@pubsweet/db-manager'
-
-import Journal from '../../server/journal/src/journal'
-
-let server
-
-export async function startServer() {
-  if (!server) {
-    // increase timeout to wait for webpack compilation
-    DestinationRequest.TIMEOUT = 60 * 1000
-    server = await start()
-  }
-}
-
-export async function setup(user) {
-  await createTables(true)
-
-  const userData = user || {
-    username: faker.internet.domainWord(),
-    email: faker.internet.exampleEmail(),
-    password: faker.internet.password(),
-    admin: true,
-  }
-
-  const journalData = {
-    title: 'SimpleJ',
-    meta: {},
-  }
-
-  const newUser = new User(userData)
-  await newUser.save()
-
-  const journal = new Journal(journalData)
-  await journal.save()
-
-  return { userData, journal }
-}
-
-export function teardown() {}
diff --git a/test/helpers/submission.js b/test/helpers/submission.js
deleted file mode 100644
index 8770cb0592..0000000000
--- a/test/helpers/submission.js
+++ /dev/null
@@ -1,73 +0,0 @@
-import faker from 'faker'
-import { Selector, t } from 'testcafe'
-import { dashboard, submission, confirmation } from '../pageObjects'
-import { prepareEditor } from './prosemirror-helper'
-
-const title = 'this is a test submission'
-
-export async function createSubmission(testfile) {
-  await t
-    .setFilesToUpload(dashboard.createSubmission, [testfile])
-    .wait(30000)
-    .expect(
-      Selector('div[id="metadata.title"] div[contenteditable=true]').exists,
-    )
-    .ok()
-
-  await t
-    .click(submission.title)
-    .wait(500)
-    .typeText(submission.title, title, { replace: true })
-
-  await t
-    .typeText(
-      ...(await prepareEditor(submission.abstract, faker.lorem.words(20))),
-    )
-    .pressKey('tab')
-    .click(submission.addAuthor)
-    .typeText(submission.authorFirstName, faker.internet.domainWord())
-    .typeText(submission.authorLastName, faker.internet.domainWord())
-    .typeText(submission.authorEmail, faker.internet.exampleEmail())
-    .typeText(submission.authorAffiliation, faker.internet.domainWord())
-    .typeText(submission.keywords, faker.lorem.words(3))
-    .click(submission.articleType)
-    .click(submission.articleTypeOptions.nth(0))
-    .click(submission.articleSectionOptions.nth(2))
-    .click(submission.articleSectionOptions.nth(3))
-
-    .click(submission.openDataOptions.nth(0))
-    .click(submission.previouslySubmittedOptions.nth(0))
-    .click(submission.openPeerReviewOptions.nth(1))
-    .click(submission.streamlinedReviewOptions.nth(0))
-    .click(submission.researchNexusOptions.nth(1))
-    .click(submission.preregisteredOptions.nth(0))
-
-  await t
-    .typeText(
-      ...(await prepareEditor(
-        submission.fundingAcknowledgement,
-        faker.lorem.words(3),
-      )),
-    )
-    .pressKey('tab tab tab tab tab tab tab tab')
-
-  return t
-}
-
-export async function submitManuscript(testfile) {
-  await createSubmission(testfile)
-
-  await t
-    .wait(500)
-    .pressKey('enter')
-    .wait(500)
-
-  await t.expect(confirmation.submitManuscript).exists
-
-  await t.wait(1000).click(confirmation.submitManuscript)
-
-  await t
-    .wait(1000)
-    .expect(await Selector(dashboard.createSubmission).exists)
-    .ok()
-}
diff --git a/test/pageObjects/confirmation.js b/test/pageObjects/confirmation.js
deleted file mode 100644
index 080cc6b6da..0000000000
--- a/test/pageObjects/confirmation.js
+++ /dev/null
@@ -1,10 +0,0 @@
-import { Selector } from 'testcafe'
-
-const confirmation = {
-  submitManuscript: Selector('button[type=submit]'),
-  returnToSubmission: Selector('button').withText(
-    'GET BACK TO YOUR SUBMISSION',
-  ),
-}
-
-export default confirmation
diff --git a/test/pageObjects/controlPanel.js b/test/pageObjects/controlPanel.js
deleted file mode 100644
index 3ea83c29e2..0000000000
--- a/test/pageObjects/controlPanel.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import config from 'config'
-import { Selector } from 'testcafe'
-
-const controlPanel = {
-  url: `${config.get('pubsweet-server.baseUrl')}`,
-  collabraHome: Selector('nav a'),
-
-  assignReviewers: Selector('a').withText('Assign Reviewers'),
-}
-
-export default controlPanel
diff --git a/test/pageObjects/dashboard.js b/test/pageObjects/dashboard.js
deleted file mode 100644
index c3c87608ba..0000000000
--- a/test/pageObjects/dashboard.js
+++ /dev/null
@@ -1,66 +0,0 @@
-import config from 'config'
-import { Selector } from 'testcafe'
-
-const dashboard = {
-  url: `${config.get('pubsweet-server.baseUrl')}`,
-  collabraHome: Selector('nav a'),
-  logout: Selector('button[type=button]').withText('Logout'),
-
-  createSubmission: Selector('input'),
-  input: Selector('input[type=file]'),
-
-  mySubmissionsTitle: Selector('#root div div div div div').child(1),
-  mySubmissions: Selector('#root div div div div div'),
-  submission: n => dashboard.mySubmissions.child(n),
-  submissionStatus: (n, k) =>
-    dashboard.mySubmissions
-      .child(n)
-      .child('div')
-      .nth(k || n),
-  submissionSummaryInfoLink: n =>
-    dashboard.mySubmissions
-      .child(n)
-      .find('a')
-      .withText('Summary Info'),
-  submissionManuscriptLink: n =>
-    dashboard.mySubmissions
-      .child(n)
-      .find('a')
-      .withText('Manuscript'),
-  submissionDeleteLink: n =>
-    dashboard.mySubmissions
-      .child(n)
-      .find('a')
-      .withText('Delete'),
-
-  toReviewTitle: Selector('#root div div div div div').child(2),
-  acceptReview: Selector('a').withText('Accept'),
-  rejectReview: Selector('a').withText('Reject'),
-  doReview: Selector('a').withText('Do review'),
-  completed: Selector('a').withText('Completed'),
-
-  myManuscriptsTitle: Selector('#root div div div div').child(3),
-  myManuscripts: Selector('#root div div div div'),
-  manuscript: n => dashboard.myManuscripts.child(n), // specified manuscript
-  manuscriptStatus: n =>
-    dashboard.myManuscripts
-      .child(n)
-      .child('div')
-      .nth(1),
-  controlPanel: Selector('a').withText('Control Panel'),
-  manuscriptLink: Selector('div').withText('this is a test submission'),
-  invitedReviewsCount: Selector('span span')
-    .withText('invited')
-    .sibling(0),
-  acceptedReviewsCount: Selector('span span')
-    .withText('accepted')
-    .sibling(0),
-  rejectedReviewsCount: Selector('span span')
-    .withText('rejected')
-    .sibling(0),
-  completedReviewsCount: Selector('span span')
-    .withText('completed')
-    .sibling(0),
-}
-
-export default dashboard
diff --git a/test/pageObjects/index.js b/test/pageObjects/index.js
deleted file mode 100644
index 13e7053a4c..0000000000
--- a/test/pageObjects/index.js
+++ /dev/null
@@ -1,6 +0,0 @@
-export { default as login } from './login'
-export { default as dashboard } from './dashboard'
-export { default as submission } from './submission'
-export { default as confirmation } from './confirmation'
-export { default as reviewers } from './reviewers'
-export { default as review } from './review'
diff --git a/test/pageObjects/login.js b/test/pageObjects/login.js
deleted file mode 100644
index 3b389f56fc..0000000000
--- a/test/pageObjects/login.js
+++ /dev/null
@@ -1,21 +0,0 @@
-import config from 'config'
-import { Selector, t } from 'testcafe'
-
-const login = {
-  url: `${config.get('pubsweet-server.baseUrl')}/login?next=/`,
-
-  username: Selector('form input[type=text]'),
-  password: Selector('form input[type=password]'),
-  submit: Selector('form button'),
-
-  alert: Selector(() => document.querySelector('form').previousSibling),
-
-  doLogin: (username, password) =>
-    t
-      .navigateTo(login.url)
-      .typeText(login.username, username)
-      .typeText(login.password, password)
-      .click(login.submit),
-}
-
-export default login
diff --git a/test/pageObjects/review.js b/test/pageObjects/review.js
deleted file mode 100644
index 072e3be054..0000000000
--- a/test/pageObjects/review.js
+++ /dev/null
@@ -1,28 +0,0 @@
-import config from 'config'
-import { Selector } from 'testcafe'
-
-const review = {
-  url: `${config.get('pubsweet-server.baseUrl')}`,
-  collabraHome: Selector('nav a'),
-
-  assignEditors: Selector('div').withText('Assign Editors'),
-  assignReviewers: Selector('a').withText('Assign Reviewers'),
-
-  comments: Selector('div[name="note.content"] div[contenteditable]'),
-  confidentialComments: Selector(
-    'div[name=confidential.content] div[contenteditable]',
-  ),
-
-  accept: Selector(
-    'input[type=radio name="Recommendation.recommendation" value="accept"]',
-  ),
-  revise: Selector(
-    'input[type=radio name="Recommendation.recommendation" value="revise"]',
-  ),
-  reject: Selector(
-    'input[type=radio name="Recommendation.recommendation" value="reject"]',
-  ),
-  submit: Selector('button[type=submit]'),
-}
-
-export default review
diff --git a/test/pageObjects/reviewers.js b/test/pageObjects/reviewers.js
deleted file mode 100644
index 4e51c4ff2e..0000000000
--- a/test/pageObjects/reviewers.js
+++ /dev/null
@@ -1,16 +0,0 @@
-import config from 'config'
-import { Selector } from 'testcafe'
-import { ReactSelector } from 'testcafe-react-selectors'
-
-const reviewers = {
-  url: `${config.get('pubsweet-server.baseUrl')}`,
-  collabraHome: Selector('nav a'),
-
-  reviewerSelect: ReactSelector('CreatableSelect Select'),
-  reviewer: Selector('#react-select-3--option-1'),
-  inviteReviewer: Selector('button[type=submit]'),
-
-  backToControlPanel: Selector('a').withText('Back to Control Panel'),
-}
-
-export default reviewers
diff --git a/test/pageObjects/submission.js b/test/pageObjects/submission.js
deleted file mode 100644
index 8059051cb1..0000000000
--- a/test/pageObjects/submission.js
+++ /dev/null
@@ -1,38 +0,0 @@
-import { Selector } from 'testcafe'
-
-const submission = {
-  title: Selector('div[id="metadata.title"] div[contenteditable=true]'),
-  abstract: Selector('div[id="metadata.abstract"] div[contenteditable=true]'),
-  addAuthor: Selector('button[type=button]').withText('ADD ANOTHER AUTHOR'),
-  authorFirstName: Selector('input[name="authors.0.firstName"]'),
-  authorLastName: Selector('input[name="authors.0.lastName"]'),
-  authorEmail: Selector('input[name="authors.0.email"]'),
-  authorAffiliation: Selector('input[name="authors.0.affiliation"]'),
-  keywords: Selector('div[id="metadata.keywords"] input'),
-  articleType: Selector('div[id="metadata.articleType"] button'),
-  articleTypeOptions: Selector(
-    'div[id="metadata.articleType"] div[role=option]',
-  ),
-  articleSectionOptions: Selector('div[id="metadata.articleSection"] label'),
-
-  openDataOptions: Selector('div[id="declarations.openData"] label'),
-  previouslySubmittedOptions: Selector(
-    'div[id="declarations.previouslySubmitted"] label',
-  ),
-  openPeerReviewOptions: Selector(
-    'div[id="declarations.openPeerReview"] label',
-  ),
-  streamlinedReviewOptions: Selector(
-    'div[id="declarations.streamlinedReview"] label',
-  ),
-  researchNexusOptions: Selector('div[id="declarations.researchNexus"] label'),
-  preregisteredOptions: Selector('div[id="declarations.preregistered"] label'),
-
-  fundingAcknowledgement: Selector(
-    'div[id="notes.fundingAcknowledgement"] div[contenteditable]',
-  ),
-
-  submit: Selector('form button'),
-}
-
-export default submission
diff --git a/test/reviewer.test.js b/test/reviewer.test.js
deleted file mode 100644
index 217cb405a1..0000000000
--- a/test/reviewer.test.js
+++ /dev/null
@@ -1,64 +0,0 @@
-import config from 'config'
-import { Selector } from 'testcafe'
-import { startServer, teardown } from './helpers/setup'
-import { setupWithOneSubmittedManuscript } from './fixtures/manuscript-setup/setup-one-submitted'
-import { login, dashboard, reviewers, review } from './pageObjects'
-
-const goodInkConfig = {
-  inkEndpoint: 'http://inkdemo-api.coko.foundation/',
-  email: 'editoria@coko.foundation',
-  password: 'editoria',
-  recipes: {
-    'editoria-typescript': '2',
-  },
-}
-
-const user = { username: 'john', password: 'johnjohn' }
-
-fixture
-  .only('Assign reviewers')
-  .before(async () => {
-    config['pubsweet-component-ink-backend'] = goodInkConfig
-    await startServer()
-  })
-  .afterEach(teardown)
-
-test.skip.before(async t => {
-  await setupWithOneSubmittedManuscript()
-  await login.doLogin(user.username, user.password)
-})('Assign reviewer', async t => {
-  await t
-    .expect(dashboard.invitedReviewsCount.innerText)
-    .eql('0')
-    .expect(dashboard.manuscriptStatus(2).innerText)
-    .contains('SUBMITTED')
-  // .expect(await Selector(dashboard.controlPanel).exists)
-  // .ok()
-
-  await t.click(dashboard.controlPanel).wait(2000)
-
-  await t.expect(await Selector(review.assignEditors).exists).ok()
-  await t.expect(await Selector(review.assignReviewers).exists).ok()
-
-  await t
-    .click(review.assignReviewers)
-    .expect(Selector(reviewers.reviewerSelect).exists)
-    .ok()
-    .click(reviewers.reviewerSelect)
-
-  await t
-    .expect(await Selector(reviewers.reviewer.withText(user.username)).exists)
-    .ok()
-
-  await t
-    .click(reviewers.reviewer.withText(user.username))
-    .expect(await Selector(reviewers.inviteReviewer).exists)
-    .ok()
-    .click(reviewers.inviteReviewer)
-
-  await t
-    .click(reviewers.collabraHome)
-    .wait(1000)
-    .expect(dashboard.invitedReviewsCount.innerText)
-    .eql('1')
-})
-- 
GitLab