diff options
| author | Armand Philippot <git@armandphilippot.com> | 2023-11-30 19:30:43 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2023-12-01 16:08:54 +0100 |
| commit | 5b762b1b669454a89899c4bdf6008027d9615acf (patch) | |
| tree | 37087f4ee9d14ae131bde15a48d7d04e83ae6cbd /tests/cypress/e2e | |
| parent | f7e6f42216c3cbeab9add475a61bb407c6be3519 (diff) | |
refactor(pages): refine Article pages
* use rehype to update code blocks class names
* fix widget heading level (after a level 1 it should always be a level
2 and not 3)
* replace Spinner with LoadingPage and LoadingPageComments components to
keep layout coherent
* refactor useArticle and useComments hooks
* fix URLs in JSON LD schema
* add Cypress tests
Diffstat (limited to 'tests/cypress/e2e')
| -rw-r--r-- | tests/cypress/e2e/pages/article.cy.ts | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/tests/cypress/e2e/pages/article.cy.ts b/tests/cypress/e2e/pages/article.cy.ts new file mode 100644 index 0000000..cf64015 --- /dev/null +++ b/tests/cypress/e2e/pages/article.cy.ts @@ -0,0 +1,49 @@ +import { ROUTES } from '../../../../src/utils/constants'; + +describe('Article', () => { + beforeEach(() => { + cy.visit(ROUTES.HOME); + cy.findAllByRole('link', { name: /^Consulter/i }).then(($articles) => + $articles[0].click() + ); + }); + + it('successfully loads', () => { + cy.findByRole('heading', { level: 1 }).should('exist'); + }); + + it('contains the article meta', () => { + // eslint-disable-next-line @typescript-eslint/no-magic-numbers + cy.findAllByRole('term').should('have.length.at.least', 3); + + /* The accessible name is not recognized while it should be the `dt` text + * content */ + /* cy.findByRole('term', { name: 'Écrit par :' }).should('exist'); + cy.findByRole('term', { name: 'Publié le :' }).should('exist'); + cy.findByRole('term', { name: 'Temps de lecture :' }).should('exist'); */ + }); + + it('contains a breadcrumbs', () => { + cy.findByRole('navigation', { name: 'Fil d’Ariane' }).should('exist'); + }); + + it('contains a table of contents', () => { + cy.findByRole('heading', { level: 2, name: 'Table des matières' }).should( + 'exist' + ); + }); + + it('contains a sharing widget', () => { + cy.findByRole('heading', { level: 2, name: 'Partager' }).should('exist'); + }); + + it('contains a comments section', () => { + cy.findByRole('heading', { + level: 2, + name: 'Laisser un commentaire', + }).should('exist'); + cy.findByRole('form', { name: 'Formulaire des commentaires' }).should( + 'exist' + ); + }); +}); |
