describe('Result Page', () => { beforeEach(() => { cy.resetDatabase() cy.login() }) function passScreeningAndStartSession() { cy.get('[data-cy="start-screening"]').click() for (let i = 1; i <= 10; i++) { cy.get(`[data-cy="screening-answer-${i}"]`).within(() => { cy.get('[data-cy="yes"]').check({ force: true }) }) } cy.get('[data-cy="submit-screening"]').click() cy.get('[data-cy="category-select"]').within(() => { cy.contains('button', 'Start').first().click() }) cy.url().should('include', '/sessions/') } it('shows session result after completion', () => { passScreeningAndStartSession() // Just complete without answering specific questions cy.get('[data-cy="complete-session"]').click() cy.url().should('include', '/result') cy.get('[data-cy="session-result"]').should('exist') }) it('shows the result badge with correct result type', () => { passScreeningAndStartSession() cy.get('[data-cy="complete-session"]').click() cy.url().should('include', '/result') // Should show one of the result types cy.get('[data-cy="session-result"]').should('exist') cy.get('[data-cy^="result-"]').should('exist') }) it('can start over from result page', () => { passScreeningAndStartSession() cy.get('[data-cy="complete-session"]').click() cy.url().should('include', '/result') cy.get('[data-cy="start-new"]').click() cy.url().should('eq', Cypress.config('baseUrl') + '/') }) })