import { assertStartPage } from '../../../support/helpers'; const NewsTeasers = { newsTeasers: [], }; describe('Onboarding', () => { beforeEach(() => { cy.setup(); }); it('shows the onboarding steps and finishes them', () => { let onboardingVisited = false; cy.mockGraphqlOps({ operations: { MeQuery: () => ({ me: { onboardingVisited, }, }), UpdateOnboardingProgress: () => { onboardingVisited = true; return { updateOnboardingProgress: { success: true, }, }; }, NewsTeasers, }, }); cy.visit('/'); assertStartPage(true); cy.get('[data-cy=onboarding-next-link]').click(); cy.getByDataCy('onboarding-heading').should('contain.text', 'Ihr Lernbereich'); cy.get('[data-cy=onboarding-next-link]').click(); cy.getByDataCy('onboarding-heading').should('contain.text', 'Ihr Bereich für Zusammenarbeit'); cy.get('[data-cy=onboarding-next-link]').click(); cy.getByDataCy('onboarding-heading').should('contain.text', 'Ihr persönlicher Bereich'); cy.get('[data-cy=onboarding-next-link]').click(); assertStartPage(false); cy.wait('@NewsTeasers'); }); it('shows the onboarding steps and skips them', () => { let onboardingVisited = false; cy.mockGraphqlOps({ operations: { MeQuery: { me: { onboardingVisited, }, }, UpdateOnboardingProgress: () => { onboardingVisited = true; return { updateOnboardingProgress: { success: true, }, }; }, NewsTeasers, }, }); cy.visit('/'); assertStartPage(true); cy.getByDataCy('onboarding-skip-link').click(); assertStartPage(false); cy.wait('@NewsTeasers'); }); it('does not show the onboarding', () => { cy.mockGraphqlOps({ operations: { MeQuery: { me: {}, }, NewsTeasers, }, }); cy.visit('/'); assertStartPage(false); cy.wait('@NewsTeasers'); }); });