Skip to content

Commit

Permalink
Fix: Update tests to meet new standards (fixes #149) (#150)
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 <41006337+cahirodoherty-learningpool@users.noreply.github.com>

* Corrected test

* Updated test

---------

Co-authored-by: Cahir O'Doherty <41006337+cahirodoherty-learningpool@users.noreply.github.com>
  • Loading branch information
lemmyadams and cahirodoherty-learningpool authored Jun 18, 2024
1 parent 5b7c1ea commit 2b9c1e4
Showing 1 changed file with 23 additions and 25 deletions.
48 changes: 23 additions & 25 deletions test/e2e/accordion.cy.js
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);
})
});
});

0 comments on commit 2b9c1e4

Please sign in to comment.