diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/cypress/e2e/pages/thematic.cy.ts | 41 | ||||
| -rw-r--r-- | tests/msw/handlers/thematics/thematics-list.handler.ts | 11 | ||||
| -rw-r--r-- | tests/msw/handlers/topics/topics-list.handler.ts | 9 | ||||
| -rw-r--r-- | tests/msw/schema/types/thematic.types.ts | 1 | ||||
| -rw-r--r-- | tests/msw/schema/types/topic.types.ts | 1 |
5 files changed, 57 insertions, 6 deletions
diff --git a/tests/cypress/e2e/pages/thematic.cy.ts b/tests/cypress/e2e/pages/thematic.cy.ts new file mode 100644 index 0000000..dab0d45 --- /dev/null +++ b/tests/cypress/e2e/pages/thematic.cy.ts @@ -0,0 +1,41 @@ +import { ROUTES } from '../../../../src/utils/constants'; + +describe('Thematic', () => { + beforeEach(() => { + cy.visit(ROUTES.HOME); + cy.findByRole('link', { name: /^Développement/i }).click(); + }); + + it('successfully loads', () => { + cy.findByRole('heading', { level: 1 }).should('exist'); + }); + + it('contains the thematic meta', () => { + // eslint-disable-next-line @typescript-eslint/no-magic-numbers + cy.findAllByRole('term').should('have.length.at.least', 2); + + /* The accessible name is not recognized while it should be the `dt` text + * content */ + /* cy.findByRole('term', { name: 'Publié le :' }).should('exist'); + cy.findByRole('term', { name: 'Total :' }).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 thematics list widget and a topics list widget', () => { + cy.findByRole('heading', { level: 2, name: 'Autres thématiques' }).should( + 'exist' + ); + cy.findByRole('heading', { level: 2, name: 'Sujets connexes' }).should( + 'exist' + ); + }); +}); diff --git a/tests/msw/handlers/thematics/thematics-list.handler.ts b/tests/msw/handlers/thematics/thematics-list.handler.ts index f206247..7afec4c 100644 --- a/tests/msw/handlers/thematics/thematics-list.handler.ts +++ b/tests/msw/handlers/thematics/thematics-list.handler.ts @@ -23,12 +23,17 @@ export const thematicsListHandler = graphql.query< variableValues: variables, rootValue: { thematics({ after, first, where }: typeof variables) { - const { search, title } = where ?? {}; + const { notIn, search, title } = where ?? {}; + const filteredThematicsById = notIn + ? wpThematicsFixture.filter( + (thematic) => !notIn.includes(thematic.databaseId) + ) + : wpThematicsFixture; const filteredThematicsByTitle = title - ? wpThematicsFixture.filter((thematic) => + ? filteredThematicsById.filter((thematic) => thematic.title.includes(title) ) - : wpThematicsFixture; + : filteredThematicsById; const filteredThematics = search ? filteredThematicsByTitle.filter((thematic) => thematic.title.includes(search) diff --git a/tests/msw/handlers/topics/topics-list.handler.ts b/tests/msw/handlers/topics/topics-list.handler.ts index 5e3e31a..4b09c5a 100644 --- a/tests/msw/handlers/topics/topics-list.handler.ts +++ b/tests/msw/handlers/topics/topics-list.handler.ts @@ -23,10 +23,13 @@ export const topicsListHandler = graphql.query< variableValues: variables, rootValue: { topics({ after, first, where }: typeof variables) { - const { search, title } = where ?? {}; - const filteredTopicsByTitle = title - ? wpTopicsFixture.filter((topic) => topic.title.includes(title)) + const { notIn, search, title } = where ?? {}; + const filteredTopicsById = notIn + ? wpTopicsFixture.filter((topic) => !notIn.includes(topic.databaseId)) : wpTopicsFixture; + const filteredTopicsByTitle = title + ? filteredTopicsById.filter((topic) => topic.title.includes(title)) + : filteredTopicsById; const filteredTopics = search ? filteredTopicsByTitle.filter((topic) => topic.title.includes(search) diff --git a/tests/msw/schema/types/thematic.types.ts b/tests/msw/schema/types/thematic.types.ts index 2af4f9a..4f8e841 100644 --- a/tests/msw/schema/types/thematic.types.ts +++ b/tests/msw/schema/types/thematic.types.ts @@ -26,6 +26,7 @@ type Thematic { input RootQueryToThematicConnectionWhereArgs { authorName: String + notIn: [ID] orderby: [PostObjectsConnectionOrderbyInput] search: String title: String diff --git a/tests/msw/schema/types/topic.types.ts b/tests/msw/schema/types/topic.types.ts index 2d54653..7d6e4a0 100644 --- a/tests/msw/schema/types/topic.types.ts +++ b/tests/msw/schema/types/topic.types.ts @@ -27,6 +27,7 @@ type Topic { input RootQueryToTopicConnectionWhereArgs { authorName: String + notIn: [ID] orderby: [PostObjectsConnectionOrderbyInput] search: String title: String |
