test fold set hierarchy

This commit is contained in:
Yisroel Baum 2026-08-15 21:52:47 +03:00
parent 021eb06460
commit 7ae745162f
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9

View file

@ -51,7 +51,7 @@ describe('set element layout', () => {
interceptAuthenticatedUser() interceptAuthenticatedUser()
}) })
it('opens a set from the dashboard and shows its full hierarchy', () => { it('opens a set with a foldable element hierarchy', () => {
cy.intercept('GET', '**/api/sets', { cy.intercept('GET', '**/api/sets', {
statusCode: 200, statusCode: 200,
body: { sets: [{ id: 41, name: 'Bible' }] }, body: { sets: [{ id: 41, name: 'Bible' }] },
@ -79,13 +79,35 @@ describe('set element layout', () => {
cy.get('[data-element-id="1"] > .element-node__card') cy.get('[data-element-id="1"] > .element-node__card')
.should('contain.text', 'Genesis') .should('contain.text', 'Genesis')
.and('contain.text', 'book') .and('contain.text', 'book')
.and('have.attr', 'aria-expanded', 'false')
.and('have.attr', 'aria-controls', 'element-children-1')
cy.get('[data-element-id="2"] > .element-node__card').should(
'not.match',
'button',
)
cy.get('[data-element-id="3"]').should('not.exist')
cy.get('[data-element-id="1"] > button.element-node__card').click()
cy.get('[data-element-id="1"] > .element-node__card').should(
'have.attr',
'aria-expanded',
'true',
)
cy.get('[data-element-id="1"] > ol > li').then(($nodes) => { cy.get('[data-element-id="1"] > ol > li').then(($nodes) => {
expect([...$nodes].map((node) => node.dataset.elementId)).to.deep.equal([ expect([...$nodes].map((node) => node.dataset.elementId)).to.deep.equal([
'3', '3',
'5', '5',
]) ])
}) })
cy.get('[data-element-id="3"] > ol > li') cy.get('[data-element-id="4"]').should('not.exist')
cy.get('[data-element-id="3"] > button.element-node__card').click()
cy.get('[data-element-id="3"] > .element-node__card').should(
'have.attr',
'aria-expanded',
'true',
)
cy.get('#element-children-3 > li')
.should('have.length', 1) .should('have.length', 1)
.and('have.attr', 'data-element-id', '4') .and('have.attr', 'data-element-id', '4')
cy.contains('.element-node__card', 'Chapter 1') cy.contains('.element-node__card', 'Chapter 1')
@ -93,6 +115,15 @@ describe('set element layout', () => {
.find('.element-node__kind') .find('.element-node__kind')
.should('have.text', 'Chapter_sections-v2') .should('have.text', 'Chapter_sections-v2')
.and('have.css', 'text-transform', 'none') .and('have.css', 'text-transform', 'none')
cy.get('[data-element-id="1"] > button.element-node__card').click()
cy.get('[data-element-id="3"]').should('not.exist')
cy.get('[data-element-id="1"] > button.element-node__card').click()
cy.get('[data-element-id="4"] > .element-node__card').should(
'contain.text',
'Chapter 1',
)
}) })
it('shows loading and empty layout states', () => { it('shows loading and empty layout states', () => {
@ -183,6 +214,8 @@ describe('set element layout', () => {
cy.wait('@me') cy.wait('@me')
cy.wait('@layout') cy.wait('@layout')
cy.get('[data-element-id="1"] > button.element-node__card').click()
cy.get('[data-element-id="3"] > button.element-node__card').click()
cy.contains('.element-node__card', 'Chapter 1').should('be.visible') cy.contains('.element-node__card', 'Chapter 1').should('be.visible')
cy.document().then((document) => { cy.document().then((document) => {
expect(document.documentElement.scrollWidth).to.be.at.most( expect(document.documentElement.scrollWidth).to.be.at.most(