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()
})
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', {
statusCode: 200,
body: { sets: [{ id: 41, name: 'Bible' }] },
@ -79,13 +79,35 @@ describe('set element layout', () => {
cy.get('[data-element-id="1"] > .element-node__card')
.should('contain.text', 'Genesis')
.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) => {
expect([...$nodes].map((node) => node.dataset.elementId)).to.deep.equal([
'3',
'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)
.and('have.attr', 'data-element-id', '4')
cy.contains('.element-node__card', 'Chapter 1')
@ -93,6 +115,15 @@ describe('set element layout', () => {
.find('.element-node__kind')
.should('have.text', 'Chapter_sections-v2')
.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', () => {
@ -183,6 +214,8 @@ describe('set element layout', () => {
cy.wait('@me')
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.document().then((document) => {
expect(document.documentElement.scrollWidth).to.be.at.most(