test parent navigation

This commit is contained in:
Yisroel Baum 2026-06-22 10:01:31 +03:00
parent afc61cbd38
commit 3a9116dc3f
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9
3 changed files with 69 additions and 0 deletions

View file

@ -10,6 +10,63 @@ function loginAsAdmin(): void {
}
describe('element sibling navigation', () => {
it('navigates public parent elements when one exists', () => {
cy.visit('/element/1')
cy.contains('h1', 'Baderech HaAvodah').should('be.visible')
cy.get('[data-cy="element-parent-link"]').should('not.exist')
cy.visit('/element/2')
cy.contains('h1', '1. Introduction').should('be.visible')
cy.get('[data-cy="element-parent-link"]').as('parentLink')
cy.get('@parentLink')
.should('be.visible')
.and('contain.text', 'Parent: Baderech HaAvodah')
cy.get('@parentLink').should('have.attr', 'href', '/element/1')
cy.get('@parentLink').then((parentLinkElements) => {
cy.get('h1').then((headingElements) => {
expect(
parentLinkElements[0].compareDocumentPosition(headingElements[0])
& Node.DOCUMENT_POSITION_FOLLOWING,
).to.not.equal(0)
})
})
cy.get('@parentLink').click()
cy.location('pathname').should('eq', '/element/1')
cy.contains('h1', 'Baderech HaAvodah').should('be.visible')
})
it('navigates admin parent elements when one exists', () => {
loginAsAdmin()
cy.visit('/admin/element/1')
cy.get('[data-cy="admin-element-title"]')
.should('have.value', 'Baderech HaAvodah')
cy.get('[data-cy="admin-parent-link"]').should('not.exist')
cy.visit('/admin/element/2')
cy.get('[data-cy="admin-element-title"]')
.should('have.value', '1. Introduction')
cy.get('[data-cy="admin-parent-link"]').as('parentLink')
cy.get('@parentLink')
.should('be.visible')
.and('contain.text', 'Parent: Baderech HaAvodah')
cy.get('@parentLink').should('have.attr', 'href', '/admin/element/1')
cy.get('@parentLink').then((parentLinkElements) => {
cy.get('.admin-element-page__heading').then((headingElements) => {
expect(
parentLinkElements[0].compareDocumentPosition(headingElements[0])
& Node.DOCUMENT_POSITION_FOLLOWING,
).to.not.equal(0)
})
})
cy.get('@parentLink').click()
cy.location('pathname').should('eq', '/admin/element/1')
cy.get('[data-cy="admin-element-title"]')
.should('have.value', 'Baderech HaAvodah')
})
it('navigates public same-parent elements with wraparound', () => {
cy.visit('/element/1')
cy.contains('h1', 'Baderech HaAvodah').should('be.visible')