aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/cypress/e2e/pages/thematic.cy.ts41
-rw-r--r--tests/msw/handlers/thematics/thematics-list.handler.ts11
-rw-r--r--tests/msw/handlers/topics/topics-list.handler.ts9
-rw-r--r--tests/msw/schema/types/thematic.types.ts1
-rw-r--r--tests/msw/schema/types/topic.types.ts1
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