describe('Common > Header', () => { beforeEach(() => { return cy.visit('/') }) it('should redirect to /blog on click of the blog link', () => { cy.get('[data-cy=header-blog-link]') .click() .location('pathname') .should('eq', '/blog') }) it('should always be visible (sticky header)', () => { cy.scrollTo('bottom').get('header').should('be.visible') }) describe('Switch theme color (dark/light)', () => { it('should switch theme from `dark` (default) to `light`', () => { cy.get('[data-cy=switch-theme-dark]').should('be.visible') cy.get('[data-cy=switch-theme-light]').should('not.be.visible') cy.get('body').should( 'not.have.css', 'background-color', 'rgb(255, 255, 255)' ) cy.get('[data-cy=switch-theme-click]').click() cy.get('[data-cy=switch-theme-dark]').should('not.be.visible') cy.get('[data-cy=switch-theme-light]').should('be.visible') cy.get('body').should( 'have.css', 'background-color', 'rgb(255, 255, 255)' ) }) }) describe('Switch Language', () => { it('should switch locale from English (default) to French', () => { cy.get('h1').contains('Théo LUDWIG') cy.get('[data-cy=locale-flag-text]').contains('English') cy.get('[data-cy=locales-list]').should('not.be.visible') cy.get('[data-cy=locale-click]').click() cy.get('[data-cy=locales-list]').should('be.visible') cy.get('[data-cy=locales-list] > li:first-child') .contains('French') .click() cy.get('[data-cy=locales-list]').should('not.be.visible') cy.get('[data-cy=locale-flag-text]').contains('French') cy.get('h1').contains('Théo LUDWIG') }) it('should close the locale list menu when clicking outside', () => { cy.get('[data-cy=locales-list]').should('not.be.visible') cy.get('[data-cy=locale-click]').click() cy.get('[data-cy=locales-list]').should('be.visible') cy.get('h1').click() cy.get('[data-cy=locales-list]').should('not.be.visible') }) }) }) export {}