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