-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
* Added accordion e2e test * Update test/e2e/accordion.cy.js Co-authored-by: Cahir O'Doherty <[email protected]> * Corrected test * Updated test --------- Co-authored-by: Cahir O'Doherty <[email protected]>
- Loading branch information
1 parent
5b7c1ea
commit 2b9c1e4
Showing
1 changed file
with
23 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,45 +1,43 @@ | ||
describe('Accordion', function () { | ||
const stripHtml = cy.helpers.stripHtml; | ||
|
||
function loopThroughAccordion(accordionComponent) { | ||
const items = accordionComponent._items | ||
cy.get('.accordion-item').should('have.length', items.length) | ||
const items = accordionComponent._items; | ||
cy.get('.accordion-item').should('have.length', items.length); | ||
// Check each accordion item | ||
items.forEach((item, index) => { | ||
const bodyWithoutHtml = item.body.replace(/<[^>]*>/g, '') | ||
// Check within the correct item so it doesn't detect visibility from other items | ||
cy.get('.accordion-item').eq(index).within(() => { | ||
cy.get('.accordion-item__btn.is-visited').should('not.exist') | ||
cy.get('.accordion-item__body-inner').should('not.be.visible') | ||
cy.get('.accordion-item__title').should('contain', item.title).click() | ||
cy.get('.accordion-item__btn.is-visited').should('exist') | ||
cy.get('.accordion-item__btn.is-visited').should('not.exist'); | ||
cy.get('.accordion-item__body-inner').should('not.be.visible'); | ||
cy.get('.accordion-item__title').should('contain', item.title).click(); | ||
cy.get('.accordion-item__btn.is-visited').should('exist'); | ||
cy.get('.accordion-item__body-inner') | ||
.should('be.visible') | ||
.should('contain', bodyWithoutHtml) | ||
cy.get('.accordion-item__title').click() | ||
cy.get('.accordion-item__body-inner').should('not.be.visible') | ||
}) | ||
}) | ||
} | ||
.should('contain', stripHtml(item.body)); | ||
cy.get('.accordion-item__title').click(); | ||
cy.get('.accordion-item__body-inner').should('not.be.visible'); | ||
}); | ||
}); | ||
}; | ||
|
||
beforeEach(function () { | ||
cy.getData() | ||
cy.getData(); | ||
}); | ||
|
||
it('should display the accordion component', function () { | ||
const accordionComponents = this.data.components.filter((component) => component._component === 'accordion') | ||
accordionComponents.forEach((accordionComponent) => { | ||
const accordionComponents = this.data.components.filter(component => component._component === 'accordion'); | ||
accordionComponents.forEach(accordionComponent => { | ||
cy.visit(`/#/preview/${accordionComponent._id}`); | ||
const bodyWithoutHtml = accordionComponent.body.replace(/<[^>]*>/g, '') | ||
|
||
// Test basic accordion component | ||
cy.testContainsOrNotExists('.accordion__title', accordionComponent.displayTitle) | ||
cy.testContainsOrNotExists('.accordion__body', bodyWithoutHtml) | ||
cy.testContainsOrNotExists('.accordion__instruction', accordionComponent.instruction) | ||
|
||
cy.testContainsOrNotExists('.accordion__body', stripHtml(accordionComponent.body)); | ||
cy.testContainsOrNotExists('.accordion__title', stripHtml(accordionComponent.displayTitle)); | ||
cy.testContainsOrNotExists('.accordion__instruction', stripHtml(accordionComponent.instruction)); | ||
|
||
// Test accordion items | ||
loopThroughAccordion(accordionComponent) | ||
loopThroughAccordion(accordionComponent); | ||
|
||
// Allow the component to load and run external custom tests | ||
cy.wait(1000) | ||
cy.wait(1000); | ||
}) | ||
}); | ||
}); |