diff --git a/cypress/integration/ncrc/manuscripts_page_spec.js b/cypress/integration/ncrc/manuscripts_page_spec.js index 053271651e4c44402cf81bb58e300bff6ca03bf6..052b53c0a16647fb47cd280742b36e844ceac301 100644 --- a/cypress/integration/ncrc/manuscripts_page_spec.js +++ b/cypress/integration/ncrc/manuscripts_page_spec.js @@ -169,4 +169,59 @@ describe('manuscripts page tests', () => { }) }) }) + context('filter by topics and sort by label', () => { + beforeEach(() => { + ManuscriptsPage.clickSubmit() + NewSubmissionPage.clickSubmitURL() + // eslint-disable-next-line jest/valid-expect-in-promise + cy.fixture('form_option').then(data => { + SubmissionFormPage.clickElementFromFormOptionList(9) + SubmissionFormPage.selectDropdownOption(0) + SubmissionFormPage.clickTopicsCheckboxWithText(data.ncrc.topicTypes.vaccines) + Menu.clickManuscripts() + ManuscriptsPage.clickSubmit() + NewSubmissionPage.clickSubmitURL() + SubmissionFormPage.clickElementFromFormOptionList(9) + SubmissionFormPage.selectDropdownOption(1) + SubmissionFormPage.clickTopicsCheckboxWithText(data.ncrc.topicTypes.ecologyAndSpillover) + SubmissionFormPage.clickTopicsCheckboxWithText(data.ncrc.topicTypes.diagnostics) + Menu.clickManuscripts() + ManuscriptsPage.clickSubmit() + NewSubmissionPage.clickSubmitURL() + SubmissionFormPage.clickElementFromFormOptionList(9) + SubmissionFormPage.selectDropdownOption(0) + SubmissionFormPage.clickTopicsCheckboxWithText(data.ncrc.topicTypes.modeling) + SubmissionFormPage.clickTopicsCheckboxWithText(data.ncrc.topicTypes.diagnostics) + Menu.clickManuscripts() + }) + }) + it('filter article after topic and url contain that topic', () => { + ManuscriptsPage.clickArticleTopic(-1) + ManuscriptsPage.getTableRows().should('eq', 1) + cy.url().should('contain', 'vaccines') + ManuscriptsPage.getArticleTopic(0).should('contain', 'vaccines') + Menu.clickManuscripts() + ManuscriptsPage.clickArticleTopic(1) + ManuscriptsPage.getTableRows().should('eq', 2) + cy.url().should('contain', 'diagnostics') + ManuscriptsPage.getArticleTopic(0).should('contain', 'modeling') + ManuscriptsPage.getArticleTopic(1).should('contain', 'diagnostics') + ManuscriptsPage.getArticleTopic(2).should('contain', 'ecology and spillover') + ManuscriptsPage.getArticleTopic(3).should('contain', 'diagnostics') + Menu.clickManuscripts() + ManuscriptsPage.clickArticleTopic(0) + ManuscriptsPage.getTableRows().should('eq', 1) + cy.url().should('contain', 'modeling') + ManuscriptsPage.getArticleTopic(0).should('contain', 'modeling') + ManuscriptsPage.getArticleTopic(1).should('contain', 'diagnostics') + }) + it('sort article by label', () => { + ManuscriptsPage.getLabelRow(1).should('contain', 'evaluated') + ManuscriptsPage.getLabelRow(2).should('contain', 'ready to evaluat') + ManuscriptsPage.clickTableHead(5) + ManuscriptsPage.getLabelRow(0).should('contain', 'evaluated') + ManuscriptsPage.getLabelRow(1).should('contain', 'ready to evaluat') + ManuscriptsPage.getLabelRow(2).should('contain', 'ready to evaluat') + }) + }) }) diff --git a/cypress/page-object/manuscripts-page.js b/cypress/page-object/manuscripts-page.js index 75492dca9aa823e121f304d1eddd03f62be556a7..50f1de6cdf04bfd1c33c9fb60991fee50778bc5a 100644 --- a/cypress/page-object/manuscripts-page.js +++ b/cypress/page-object/manuscripts-page.js @@ -16,6 +16,8 @@ const MANUSCRIPTS_TABLE_HEAD = '[class*=Table__Header] > tr >th' const ARTICLE_ID = '[class*=Table__Row]>td:nth-child(1)' const ARTICLE_LABEL = 'style__StyledTableLabel' const ARTICLE_TOPIC = '[class*=Table__Cell] > [title]' +const TABLE_ROW = 'Table__Row' +const LABEL = '[class*=Table__Row]>td:nth-child(6)' export const ManuscriptsPage = { getManuscriptsOptionsList() { @@ -75,5 +77,14 @@ export const ManuscriptsPage = { getArticleTopic(nth) { return cy.get(ARTICLE_TOPIC).eq(nth) }, + clickArticleTopic(nth) { + this.getArticleTopic(nth).click() + }, + getTableRows() { + return cy.getByContainsClass(TABLE_ROW).its('length') + }, + getLabelRow(nth) { + return cy.get(LABEL).eq(nth) + }, } export default ManuscriptsPage