body ${i}
`, - preview_body: `body ${i}
`, - course_id: courseId, - group_id: null, - group_name: null, - abuse_flagged_count: abuseFlaggedCount, - following: false, - comment_count: 8, - unread_comment_count: 0, - endorsed_comment_list_url: null, - non_endorsed_comment_list_url: null, - read: false, - has_endorsed: false, - pinned: false, - topic_id: 'topic', - }); - } - return threads; + const attrs = { course_id: courseId, abuse_flagged_count: abuseFlaggedCount }; + return Factory.buildList('thread', 2, attrs); }, ) .attr('pagination', [], () => ({ diff --git a/src/discussions/learners/learner/LearnerFooter.jsx b/src/discussions/learners/learner/LearnerFooter.jsx index 2ee5bd5b..4d4c6704 100644 --- a/src/discussions/learners/learner/LearnerFooter.jsx +++ b/src/discussions/learners/learner/LearnerFooter.jsx @@ -23,8 +23,9 @@ const LearnerFooter = ({a test post
', - hasEndorsed: false, - voted: false, - voteCount: 10, - previewBody: 'a test post
', - read: false, - title: 'test post', - topicId: 'i4x-edx-eiorguegnru-course-foobarbaz', - unreadCommentCount: 2, - groupName: null, - groupId: null, - createdAt: '2022-02-25T09:17:17Z', - closed: false, -}; - describe('PostFooter', () => { beforeEach(async () => { initializeMockApp({ @@ -65,21 +70,17 @@ describe('PostFooter', () => { roles: [], }, }); - store = initializeStore(); - axiosMock = new MockAdapter(getAuthenticatedHttpClient()); - axiosMock.onGet(`${courseConfigApiUrl}${courseId}/`).reply(200, { - has_moderation_privileges: true, - }); - axiosMock.onGet(`${courseConfigApiUrl}${courseId}/settings`).reply(200, {}); - await executeThunk(fetchCourseConfig(courseId), store.dispatch, store.getState); }); - it('has reported text only when abuseFlagged is true', async () => { - renderComponent(mockPost); - expect(screen.queryByTestId('reported-post')).toBeFalsy(); + it.each([true, false])('has reported text only when abuseFlagged is %s', async (abuseFlagged) => { + await mockThread(postId, abuseFlagged); + renderComponent(postId); - renderComponent({ ...mockPost, abuseFlagged: true }); - expect(screen.getByTestId('reported-post')).toBeTruthy(); + if (abuseFlagged) { + expect(screen.getByText('Reported')).toBeTruthy(); + } else { + expect(screen.queryByTestId('reported-post')).toBeFalsy(); + } }); }); @@ -93,21 +94,15 @@ describe('Post username', () => { roles: [], }, }); - store = initializeStore(); - axiosMock = new MockAdapter(getAuthenticatedHttpClient()); - axiosMock.onGet(`${courseConfigApiUrl}${courseId}/`).reply(200, { - learners_tab_enabled: true, - has_moderation_privileges: true, - }); - axiosMock.onGet(`${courseConfigApiUrl}${courseId}/settings`).reply(200, {}); - await executeThunk(fetchCourseConfig(courseId), store.dispatch, store.getState); }); it.each([ 'anonymous', 'test-user', - ])('is not clickable for %s user', async (user) => { - renderComponent({ ...mockPost, author: user }); + ])('is not clickable for %s user', async () => { + await mockThread(postId, false); + renderComponent(postId); + expect(screen.queryByTestId('learner-posts-link')).not.toBeInTheDocument(); }); });