From 491f7cd92cf4dd28d7cc8bc573d8f8249cdc9f11 Mon Sep 17 00:00:00 2001 From: Maxim Beder Date: Thu, 30 Sep 2021 23:55:03 +0200 Subject: [PATCH] test: add simple test for DiscussionsHome --- .../comments/CommentsView.test.jsx | 5 -- .../discussions-home/DiscussionsHome.test.jsx | 51 +++++++++++++++++++ src/discussions/topics/TopicsView.jsx | 5 +- 3 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 src/discussions/discussions-home/DiscussionsHome.test.jsx diff --git a/src/discussions/comments/CommentsView.test.jsx b/src/discussions/comments/CommentsView.test.jsx index 7b988874..90ceacd0 100644 --- a/src/discussions/comments/CommentsView.test.jsx +++ b/src/discussions/comments/CommentsView.test.jsx @@ -1,8 +1,3 @@ -/** - * @jest-environment jsdom - */ -import React from 'react'; - import { act, fireEvent, render, screen, waitFor, } from '@testing-library/react'; diff --git a/src/discussions/discussions-home/DiscussionsHome.test.jsx b/src/discussions/discussions-home/DiscussionsHome.test.jsx new file mode 100644 index 00000000..5f778852 --- /dev/null +++ b/src/discussions/discussions-home/DiscussionsHome.test.jsx @@ -0,0 +1,51 @@ +import { + fireEvent, render, screen, +} from '@testing-library/react'; +import { IntlProvider } from 'react-intl'; +import { MemoryRouter } from 'react-router'; + +import { initializeMockApp } from '@edx/frontend-platform'; +import { AppProvider } from '@edx/frontend-platform/react'; + +import { Routes } from '../../data/constants'; +import { initializeStore } from '../../store'; +import navigationBarMessages from '../navigation/navigation-bar/messages'; +import DiscussionsHome from './DiscussionsHome'; + +let store; + +function renderComponent() { + render( + + + + + + + , + ); +} + +describe('DiscussionsHome', () => { + beforeEach(async () => { + initializeMockApp({ + authenticatedUser: { + userId: 3, + username: 'abc123', + administrator: true, + roles: [], + }, + }); + + store = initializeStore(); + }); + + it('clicking "All Topics" button renders topics view', async () => { + renderComponent(); + + const allTopicsButton = await screen.findByText(navigationBarMessages.allTopics.defaultMessage); + fireEvent.click(allTopicsButton); + + await screen.findByTestId('topics-view'); + }); +}); diff --git a/src/discussions/topics/TopicsView.jsx b/src/discussions/topics/TopicsView.jsx index b974f128..b3fd6b2e 100644 --- a/src/discussions/topics/TopicsView.jsx +++ b/src/discussions/topics/TopicsView.jsx @@ -43,7 +43,10 @@ function TopicsView() { } return ( -
+
{topicElements}