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