fix: clickable username in post, comments and responses (#234)

* fix: clickable username in post, rcomments and responses

* test: fix test case after clickable username
This commit is contained in:
Awais Ansari
2022-08-05 21:59:36 +05:00
committed by GitHub
parent b15fd96108
commit 7ea3e62d33
11 changed files with 54 additions and 25 deletions

View File

@@ -36,7 +36,7 @@ function AlertBanner({
<div className="d-flex align-items-center">
{intl.formatMessage(messages.editedBy)}
<span className="ml-1 mr-3">
<AuthorLabel author={content.lastEdit.editorUsername} />
<AuthorLabel author={content.lastEdit.editorUsername} linkToProfile />
</span>
{intl.formatMessage(messages.reason)}:&nbsp;{content.lastEdit.reason}
</div>
@@ -47,7 +47,7 @@ function AlertBanner({
<div className="d-flex align-items-center">
{intl.formatMessage(messages.closedBy)}
<span className="ml-1 ">
<AuthorLabel author={content.closedBy} />
<AuthorLabel author={content.closedBy} linkToProfile />
</span>
<span className="mx-1" />
{intl.formatMessage(messages.reason)}:&nbsp;{content.closeReason}

View File

@@ -9,6 +9,7 @@ import { ThreadType } from '../../data/constants';
import { initializeStore } from '../../store';
import messages from '../comments/messages';
import AlertBanner from './AlertBanner';
import { DiscussionContext } from './context';
import '../comments/data/__factories__';
import '../posts/data/__factories__';
@@ -26,9 +27,13 @@ function renderComponent(
render(
<IntlProvider locale="en">
<AppProvider store={store}>
<AlertBanner
content={content}
/>
<DiscussionContext.Provider
value={{ courseId: 'course-v1:edX+TestX+Test_Course' }}
>
<AlertBanner
content={content}
/>
</DiscussionContext.Provider>
</AppProvider>
</IntlProvider>,
);
@@ -53,7 +58,7 @@ describe.each([
label: 'edited content',
type: 'thread',
postType: null,
props: { last_edit: { reason: 'test-reason', editorUsername: 'editor-user' } },
props: { closed: false, last_edit: { reason: 'test-reason', editorUsername: 'editor-user' } },
expectText: [messages.editedBy.defaultMessage, messages.reason.defaultMessage, 'editor-user', 'test-reason'],
},
{

View File

@@ -72,10 +72,11 @@ function AuthorLabel({
</div>
);
return linkToProfile
return linkToProfile && author
? (
<Link
data-testid="learner-posts-link"
id="learner-posts-link"
to={discussionsPath(Routes.LEARNERS.POSTS, { learnerUsername: author, courseId })(location)}
className="text-decoration-none"
style={{ width: 'fit-content' }}

View File

@@ -44,7 +44,7 @@ function EndorsedAlertBanner({
: messages.endorsedLabel,
)}
</span>
<AuthorLabel author={content.endorsedBy} authorLabel={content.endorsedByLabel} />
<AuthorLabel author={content.endorsedBy} authorLabel={content.endorsedByLabel} linkToProfile />
{timeago.format(content.endorsedAt, intl.locale)}
</span>
</div>

View File

@@ -8,6 +8,7 @@ import { AppProvider } from '@edx/frontend-platform/react';
import { ThreadType } from '../../data/constants';
import { initializeStore } from '../../store';
import messages from '../comments/messages';
import { DiscussionContext } from './context';
import EndorsedAlertBanner from './EndorsedAlertBanner';
import '../comments/data/__factories__';
@@ -26,10 +27,14 @@ function renderComponent(
render(
<IntlProvider locale="en">
<AppProvider store={store}>
<EndorsedAlertBanner
content={content}
postType={postType}
/>
<DiscussionContext.Provider
value={{ courseId: 'course-v1:edX+DemoX+Demo_Course' }}
>
<EndorsedAlertBanner
content={content}
postType={postType}
/>
</DiscussionContext.Provider>
</AppProvider>
</IntlProvider>,
);