From 6f32d71d9105159ee2a046d514f64f6174c3f643 Mon Sep 17 00:00:00 2001 From: Ghislain Beaulac Date: Wed, 15 Jul 2020 10:21:22 -0400 Subject: [PATCH] feat(tests): add more Cypress E2E tests for Tree Data --- ...grid-tree-data-parent-child.component.html | 4 +- test/cypress/integration/example28.spec.js | 100 ++++++++++++++++++ test/cypress/package.json | 2 +- 3 files changed, 103 insertions(+), 3 deletions(-) create mode 100644 test/cypress/integration/example28.spec.js diff --git a/src/app/examples/grid-tree-data-parent-child.component.html b/src/app/examples/grid-tree-data-parent-child.component.html index 2630fb006..cf8d47363 100644 --- a/src/app/examples/grid-tree-data-parent-child.component.html +++ b/src/app/examples/grid-tree-data-parent-child.component.html @@ -8,11 +8,11 @@

Add New Item (in 1st group) - - diff --git a/test/cypress/integration/example28.spec.js b/test/cypress/integration/example28.spec.js new file mode 100644 index 000000000..006a24404 --- /dev/null +++ b/test/cypress/integration/example28.spec.js @@ -0,0 +1,100 @@ +/// + +describe('Example 28 - Tree Data (from a Hierarchical Dataset)', () => { + const titles = ['Title', 'Duration', '% Complete', 'Start', 'Finish', 'Effort Driven']; + + it('should display Example title', () => { + cy.visit(`${Cypress.config('baseExampleUrl')}/tree-data-parent-child`); + cy.get('h2').should('contain', 'Example 28: Tree Data (from a flat dataset with parentId references)'); + }); + + it('should have exact column titles in grid', () => { + cy.get('#grid28') + .find('.slick-header-columns') + .children() + .each(($child, index) => expect($child.text()).to.eq(titles[index])); + }); + + it('should have a Grid Preset Filter on 3rd column "% Complete" and expect all rows to be filtered as well', () => { + cy.get('.input-group-text.rangeOutput_percentComplete') + .contains('25'); + + cy.get('.search-filter.filter-percentComplete') + .find('.input-group-addon.operator select') + .contains('>='); + }); + + it('should collapsed all rows from "Collapse All" button', () => { + cy.get('[data-test=collapse-all]') + .contains('Collapse All') + .click(); + + cy.get('#grid28') + .find('.slick-group-toggle.expanded') + .should('have.length', 0); + + cy.get('#grid28') + .find('.slick-group-toggle.collapsed') + .should(($rows) => expect($rows).to.have.length.greaterThan(0)); + }); + + it('should expand all rows from "Expand All" button', () => { + cy.get('[data-test=expand-all]') + .contains('Expand All') + .click(); + + cy.get('#grid28') + .find('.slick-group-toggle.collapsed') + .should('have.length', 0); + + cy.get('#grid28') + .find('.slick-group-toggle.expanded') + .should(($rows) => expect($rows).to.have.length.greaterThan(0)); + }); + + it('should collapsed all rows from "Collapse All" context menu', () => { + cy.get('#grid28') + .contains('5 days'); + + cy.get('#grid28') + .find('.slick-row .slick-cell:nth(1)') + .rightclick({ force: true }); + + cy.get('.slick-context-menu.dropright .slick-context-menu-command-list') + .find('.slick-context-menu-item') + .find('.slick-context-menu-content') + .contains('Collapse all Groups') + .click(); + + cy.get('#grid28') + .find('.slick-group-toggle.expanded') + .should('have.length', 0); + + cy.get('#grid28') + .find('.slick-group-toggle.collapsed') + .should(($rows) => expect($rows).to.have.length.greaterThan(0)); + }); + + it('should collapsed all rows from "Expand All" context menu', () => { + cy.get('#grid28') + .contains('5 days'); + + cy.get('#grid28') + .find('.slick-row .slick-cell:nth(1)') + .rightclick({ force: true }); + + cy.get('.slick-context-menu.dropright .slick-context-menu-command-list') + .find('.slick-context-menu-item') + .find('.slick-context-menu-content') + .contains('Expand all Groups') + .click(); + + cy.get('#grid28') + .find('.slick-group-toggle.collapsed') + .should('have.length', 0); + + cy.get('#grid28') + .find('.slick-group-toggle.expanded') + .should(($rows) => expect($rows).to.have.length.greaterThan(0)); + }); +}); diff --git a/test/cypress/package.json b/test/cypress/package.json index c014e9f55..b88fed5c7 100644 --- a/test/cypress/package.json +++ b/test/cypress/package.json @@ -11,7 +11,7 @@ "author": "Ghislain B.", "license": "MIT", "devDependencies": { - "cypress": "^4.8.0", + "cypress": "^4.10.0", "mocha": "^5.2.0", "mochawesome": "^3.1.2", "mochawesome-merge": "^1.0.7",