describe('Questionnaire Flow', () => { beforeEach(() => { cy.resetDatabase() cy.login() }) it('completes the full questionnaire flow from landing to result', () => { // 1. Landing page — click Continue cy.get('[data-cy="start-screening"]').click() // 2. Screening — answer all 10 questions with Yes 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() // 3. Screening result — should pass with 10/10 cy.get('[data-cy="result-passed"]').should('exist') cy.get('[data-cy="screening-score"]').should('contain', '10') // 4. Select first category (Audit) cy.get('[data-cy="category-select"]').within(() => { cy.contains('button', 'Start').first().click() }) // 5. Session/Show — should see questionnaire cy.url().should('include', '/sessions/') cy.contains('Questionnaire').should('be.visible') // 6. Complete session cy.get('[data-cy="complete-session"]').click() // 7. Session result page cy.url().should('include', '/result') cy.get('[data-cy="session-result"]').should('exist') // 8. Click Again to go back cy.get('[data-cy="start-new"]').click() cy.url().should('eq', Cypress.config('baseUrl') + '/') }) })