diff --git a/cypress/tests/data/10-ApplicationSetup/20-CreateContext.cy.js b/cypress/tests/data/10-ApplicationSetup/20-CreateContext.cy.js index f5dbe599801..6e2a9b60262 100644 --- a/cypress/tests/data/10-ApplicationSetup/20-CreateContext.cy.js +++ b/cypress/tests/data/10-ApplicationSetup/20-CreateContext.cy.js @@ -99,7 +99,7 @@ describe('Data suite tests', function() { cy.get('a').contains('admin').click(); cy.get('a').contains('Dashboard').click(); cy.get('nav').contains('Settings').click(); - // Ensure 'Journal' click despite submenu animation + // Ensure submenu item click despite animation cy.get('nav').contains('Journal').click({ force: true }); cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Journal').click({ force: true }); @@ -127,7 +127,7 @@ describe('Data suite tests', function() { cy.get('a').contains('admin').click(); cy.get('a').contains('Dashboard').click(); cy.get('nav').contains('Settings').click(); - // Ensure 'Journal' click despite submenu animation + // Ensure submenu item click despite animation cy.get('nav').contains('Journal').click({ force: true }); cy.get('button[id="contact-button"]').click(); diff --git a/cypress/tests/data/10-ApplicationSetup/40-CreateUsers.cy.js b/cypress/tests/data/10-ApplicationSetup/40-CreateUsers.cy.js index 1331e389d4f..6220e9a32b9 100644 --- a/cypress/tests/data/10-ApplicationSetup/40-CreateUsers.cy.js +++ b/cypress/tests/data/10-ApplicationSetup/40-CreateUsers.cy.js @@ -12,8 +12,9 @@ describe('Data suite tests', function() { cy.login('admin', 'admin'); cy.get('a:contains("admin"):visible').click(); cy.get('a:contains("Dashboard")').click(); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Users & Roles').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Users & Roles').click({ force: true }); var users = [ { diff --git a/cypress/tests/data/10-ApplicationSetup/50-CreateCategories.cy.js b/cypress/tests/data/10-ApplicationSetup/50-CreateCategories.cy.js index d4dbbdd3856..f6f02d746d1 100644 --- a/cypress/tests/data/10-ApplicationSetup/50-CreateCategories.cy.js +++ b/cypress/tests/data/10-ApplicationSetup/50-CreateCategories.cy.js @@ -12,8 +12,9 @@ describe('Data suite tests', function() { cy.login('admin', 'admin'); cy.get('a').contains('admin').click(); cy.get('a').contains('Dashboard').click(); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Journal').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Journal').click({ force: true }); cy.get('button[id="categories-button"]').click(); // Create an Applied Science category diff --git a/cypress/tests/data/10-ApplicationSetup/50-CreateIssues.cy.js b/cypress/tests/data/10-ApplicationSetup/50-CreateIssues.cy.js index c1642fd6b4e..86a095c2812 100644 --- a/cypress/tests/data/10-ApplicationSetup/50-CreateIssues.cy.js +++ b/cypress/tests/data/10-ApplicationSetup/50-CreateIssues.cy.js @@ -12,7 +12,7 @@ describe('Data suite tests', function() { cy.login('admin', 'admin'); cy.get('a').contains('admin').click(); cy.get('a').contains('Dashboard').click(); - cy.get('nav div[data-pc-section="header"] a span').contains('Issues').click(); + cy.get('nav').contains('Issues').click(); cy.get('a[id^=component-grid-issues-futureissuegrid-addIssue-button-]').click(); cy.wait(1000); // Avoid occasional failure due to form init taking time cy.get('input[name="volume"]').type('1', {delay: 0}); diff --git a/cypress/tests/data/10-ApplicationSetup/50-CreateSections.cy.js b/cypress/tests/data/10-ApplicationSetup/50-CreateSections.cy.js index 58f163b99de..8f099952bb9 100644 --- a/cypress/tests/data/10-ApplicationSetup/50-CreateSections.cy.js +++ b/cypress/tests/data/10-ApplicationSetup/50-CreateSections.cy.js @@ -12,8 +12,9 @@ describe('Data suite tests', function() { cy.login('admin', 'admin'); cy.get('a').contains('admin').click(); cy.get('a').contains('Dashboard').click(); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Journal').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Journal').click({ force: true }); cy.get('button[id="sections-button"]').click(); // Edit Articles section to add section editors diff --git a/cypress/tests/integration/Doi.cy.js b/cypress/tests/integration/Doi.cy.js index 96f0cc6d0a6..18b2dfecf59 100644 --- a/cypress/tests/integration/Doi.cy.js +++ b/cypress/tests/integration/Doi.cy.js @@ -22,7 +22,7 @@ describe('DOI tests', function() { }; const goToDoiPage = (itemType = 'submission') => { - cy.get('nav div[data-pc-section="header"] a span').contains('DOIs').click(); + cy.get('nav').contains('DOIs').click(); cy.get(`button#${itemType}-doi-management-button`).click(); }; diff --git a/cypress/tests/integration/DoiCrossref.cy.js b/cypress/tests/integration/DoiCrossref.cy.js index a9faa2e0bd4..c760ced4a6d 100644 --- a/cypress/tests/integration/DoiCrossref.cy.js +++ b/cypress/tests/integration/DoiCrossref.cy.js @@ -13,8 +13,9 @@ describe('Crossref tests', function () { it('Check Crossref Configuration', function () { cy.login('dbarnes', null, 'publicknowledge'); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Website').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Website').click({ force: true }); cy.waitJQuery(); cy.get('button#plugins-button').click(); @@ -24,7 +25,8 @@ describe('Crossref tests', function () { cy.get('input[id^=select-cell-crossrefplugin]').should('be.checked'); // Crossref is enabled as DOI registration agency. - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Distribution').click({ force: true }); + // Ensure submenu item click despite animation + cy.get('nav').contains('Distribution').click({ force: true }); cy.get('button#dois-button').click(); cy.get( '#doiSetup input[name="enabledDoiTypes"][value="representation"]' @@ -82,8 +84,9 @@ describe('Crossref tests', function () { }); cy.log('Deselect Crossref as registered agency for downstream tests'); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Distribution').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Distribution').click({ force: true }); cy.get('button#dois-button').click(); cy.get('button#doisRegistration-button').click(); cy.get('select#doiRegistrationSettings-registrationAgency-control').select( diff --git a/cypress/tests/integration/Statistics.cy.js b/cypress/tests/integration/Statistics.cy.js index 3f8f465fd0e..d48cc31898b 100644 --- a/cypress/tests/integration/Statistics.cy.js +++ b/cypress/tests/integration/Statistics.cy.js @@ -16,8 +16,9 @@ describe('Statistics Tests', function() { it('Check statistics', function() { cy.login('dbarnes', null, 'publicknowledge'); - cy.get('nav div[data-pc-section="header"] a span').contains('Statistics').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Articles').click({ force: true }); + cy.get('nav').contains('Statistics').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Articles').click({ force: true }); cy.checkGraph( 'Total abstract views by date', 'Abstract Views', diff --git a/cypress/tests/integration/SubmissionWizard.cy.js b/cypress/tests/integration/SubmissionWizard.cy.js index 0e76abdf1a6..2f018b4ad42 100644 --- a/cypress/tests/integration/SubmissionWizard.cy.js +++ b/cypress/tests/integration/SubmissionWizard.cy.js @@ -84,8 +84,9 @@ describe('Submission Wizard', function() { // Make all sections editor-restricted cy.login('dbarnes', null, 'publicknowledge'); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Journal').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Journal').click({ force: true }); cy.get('.pkpTabs__buttons button:contains("Sections")').click(); cy.get('#sectionsGridContainer a.show_extras') .each(($showExtras) => { @@ -110,8 +111,9 @@ describe('Submission Wizard', function() { // Make Articles inactive and leave Reviews editor-restricted cy.logout(); cy.login('dbarnes', null, 'publicknowledge'); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Journal').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Journal').click({ force: true }); cy.get('.pkpTabs__buttons button:contains("Sections")').click(); cy.get('#sectionsGridContainer tr:contains("Articles") input').check(); cy.get('[role="dialog"] button:contains("OK")').click(); @@ -126,8 +128,9 @@ describe('Submission Wizard', function() { // Make Reviews not editor-restricted cy.logout(); cy.login('dbarnes', null, 'publicknowledge'); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Journal').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Journal').click({ force: true }); cy.get('.pkpTabs__buttons button:contains("Sections")').click(); cy.get('#sectionsGridContainer tr:contains("Reviews")') .then(($tr) => { @@ -153,8 +156,9 @@ describe('Submission Wizard', function() { // Reactivate Articles section to restore test data conditions cy.logout(); cy.login('dbarnes', null, 'publicknowledge'); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Journal').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Journal').click({ force: true }); cy.get('.pkpTabs__buttons button:contains("Sections")').click(); cy.get('#sectionsGridContainer tr:contains("Articles")') .then(($tr) => { diff --git a/cypress/tests/integration/Subscriptions.cy.js b/cypress/tests/integration/Subscriptions.cy.js index 1e2e50eab52..3f38bab5b81 100644 --- a/cypress/tests/integration/Subscriptions.cy.js +++ b/cypress/tests/integration/Subscriptions.cy.js @@ -19,8 +19,9 @@ describe('Subscription tests', function() { it('Configures subscriptions', function() { cy.login('dbarnes', null, 'publicknowledge'); - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Distribution').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Distribution').click({ force: true }); // Payment settings cy.get('button#payments-button').click(); @@ -39,7 +40,7 @@ describe('Subscription tests', function() { cy.get('#access [role="status"]').contains('Saved'); // Configure an issue for subscription. - cy.get('nav div[data-pc-section="header"] a span').contains('Issues').click(); + cy.get('nav').contains('Issues').click(); cy.get('button:contains("Back Issues")').click(); cy.get('a:contains("Vol. 1 No. 2 (2014)")').click(); cy.get('[role="dialog"] a:contains("Access")').click(); @@ -48,7 +49,7 @@ describe('Subscription tests', function() { cy.get('div:contains("Your changes have been saved.")'); // Set up subscription policies - cy.get('nav div[data-pc-section="header"] a span').contains('Payments').click(); + cy.get('nav').contains('Payments').click(); cy.get('a[name=subscriptionPolicies]').click(); cy.get('input[id^="subscriptionName-"]').type('Sebastiano Mortensen', {delay: 0}); cy.get('input[id^="subscriptionEmail-"]').type('smortensen@mailinator.com', {delay: 0}); @@ -80,8 +81,9 @@ describe('Subscription tests', function() { cy.login('dbarnes', null, 'publicknowledge'); // Create a reader user for the subscription - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Users & Roles').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Users & Roles').click({ force: true }); cy.createUser({ 'username': 'reader', 'givenName': 'Rea', @@ -107,7 +109,7 @@ describe('Subscription tests', function() { cy.login('dbarnes', null, 'publicknowledge'); // Set up an individual subscription type - cy.get('nav div[data-pc-section="header"] a span').contains('Payments').click(); + cy.get('nav').contains('Payments').click(); cy.get('a[name="subscriptionTypes"]').click(); cy.get('a:contains("Create New Subscription Type")').click(); cy.wait(1000); // Form initialization problem diff --git a/cypress/tests/integration/Y_NativeXmlImportExportIssue.cy.js b/cypress/tests/integration/Y_NativeXmlImportExportIssue.cy.js index 8e273fb2ee1..72dda0b07cc 100644 --- a/cypress/tests/integration/Y_NativeXmlImportExportIssue.cy.js +++ b/cypress/tests/integration/Y_NativeXmlImportExportIssue.cy.js @@ -15,7 +15,7 @@ describe('Data suite tests', function() { cy.get('li.profile a:contains("' + username + '")').click(); cy.get('li.profile a:contains("Dashboard")').click(); - cy.get('nav div[data-pc-section="header"] a span').contains('Tools').click(); + cy.get('nav').contains('Tools').click(); cy.get('a:contains("Native XML Plugin")').click(); cy.get('a:contains("Export Issues")').click(); cy.waitJQuery({timeout:20000}); @@ -43,7 +43,7 @@ describe('Data suite tests', function() { cy.get('li.profile a:contains("' + username + '")').click(); cy.get('li.profile a:contains("Dashboard")').click(); - cy.get('nav div[data-pc-section="header"] a span').contains('Tools').click(); + cy.get('nav').contains('Tools').click(); // The a:contains(...) syntax ensures that it will wait for the // tab to load. Do not convert to cy.get('a').contains('Native XML Plugin') cy.get('a:contains("Native XML Plugin")').click(); diff --git a/cypress/tests/integration/Z_ArticleViewDCMetadata.cy.js b/cypress/tests/integration/Z_ArticleViewDCMetadata.cy.js index 49d86af8db0..f4d3aec852b 100644 --- a/cypress/tests/integration/Z_ArticleViewDCMetadata.cy.js +++ b/cypress/tests/integration/Z_ArticleViewDCMetadata.cy.js @@ -359,8 +359,9 @@ describe('Article View Metadata - DC Plugin', function() { cy.get('a').contains('Dashboard').click(); // Enable metadata settings - cy.get('nav div[data-pc-section="header"] a span').contains('Settings').click(); - cy.get('nav div[data-pc-section="itemcontent"] a span').contains('Workflow').click({ force: true }); + cy.get('nav').contains('Settings').click(); + // Ensure submenu item click despite animation + cy.get('nav').contains('Workflow').click({ force: true }); cy.get('button').contains('Metadata').click(); cy.get('span').contains('Enable coverage metadata').prev('input[type="checkbox"]').check(); cy.get('span').contains('Enable type metadata').prev('input[type="checkbox"]').check(); @@ -373,7 +374,7 @@ describe('Article View Metadata - DC Plugin', function() { cy.checkDoiConfig(['publication', 'issue', 'representation']); // After configuration, go to submissions - cy.get('nav div[data-pc-section="header"] a span').contains('Submissions').click(); + cy.get('nav').contains('Submissions').click(); // Create a new submission cy.getCsrfToken();