skillbox/client/cypress/e2e/frontend/ui/onboarding.spec.ts

89 lines
2.1 KiB
TypeScript

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');
});
});