Skip to content

Commit 65061c8

Browse files
committed
feat: add overall feedback instructions to tooltip (#1)
* refactor: show feedback instructions rather than default text on overall feedback tooltip * chore: update snapshots * style: fix style issues * chore: update packages
1 parent a57c40c commit 65061c8

File tree

7 files changed

+23
-19
lines changed

7 files changed

+23
-19
lines changed

src/components/Assessment/EditableAssessment/OverallFeedback/index.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { useIntl } from '@edx/frontend-platform/i18n';
55

66
import { useViewStep } from 'hooks/routing';
77
import {
8-
useOverallFeedbackPrompt,
8+
useOverallFeedbackInstructions,
99
useOverallFeedbackFormFields,
1010
} from 'hooks/assessment';
1111

@@ -19,7 +19,7 @@ import { stepNames } from 'constants/index';
1919
*/
2020
const OverallFeedback = () => {
2121
const { formatMessage } = useIntl();
22-
const prompt = useOverallFeedbackPrompt();
22+
const instructions = useOverallFeedbackInstructions();
2323
const { value, onChange } = useOverallFeedbackFormFields();
2424

2525
const step = useViewStep();
@@ -33,7 +33,7 @@ const OverallFeedback = () => {
3333
{formatMessage(messages.overallComments)}
3434
</span>
3535
<InfoPopover>
36-
<div data-testid="prompt-test-id">{prompt}</div>
36+
<div data-testid="instructions-test-id">{instructions}</div>
3737
</InfoPopover>
3838
</Form.Label>
3939
<Form.Control

src/components/Assessment/EditableAssessment/OverallFeedback/index.test.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import { screen } from '@testing-library/react';
22
import '@testing-library/jest-dom';
3-
import { useOverallFeedbackPrompt, useOverallFeedbackFormFields } from 'hooks/assessment';
3+
import { useOverallFeedbackInstructions, useOverallFeedbackFormFields } from 'hooks/assessment';
44
import { useViewStep } from 'hooks/routing';
55
import { stepNames } from 'constants/index';
66
import { renderWithIntl } from '../../../../testUtils';
77
import OverallFeedback from '.';
88

99
jest.mock('hooks/assessment', () => ({
10-
useOverallFeedbackPrompt: jest.fn(),
10+
useOverallFeedbackInstructions: jest.fn(),
1111
useOverallFeedbackFormFields: jest.fn(),
1212
}));
1313

@@ -27,11 +27,11 @@ jest.mock('hooks/routing', () => ({
2727
describe('<OverallFeedback />', () => {
2828
const mockOnChange = jest.fn();
2929
const mockFeedbackValue = 'Test feedback content';
30-
const mockPrompt = 'Please provide overall feedback';
30+
const mockInstructions = 'Please provide overall feedback';
3131

3232
beforeEach(() => {
3333
jest.clearAllMocks();
34-
useOverallFeedbackPrompt.mockReturnValue(mockPrompt);
34+
useOverallFeedbackInstructions.mockReturnValue(mockInstructions);
3535
useOverallFeedbackFormFields.mockReturnValue({
3636
value: mockFeedbackValue,
3737
onChange: mockOnChange,

src/components/Assessment/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { CriterionConfig, MutationStatus } from "data/services/lms/types";
1+
import { CriterionConfig, MutationStatus } from 'data/services/lms/types';
22

33
export type Criterion = {
44
optionsValue: string | null;
@@ -21,4 +21,4 @@ export type RubricHookData = {
2121
overallFeedbackDisabled: boolean;
2222
overallFeedbackIsInvalid: boolean;
2323
overallFeedbackPrompt: string;
24-
};
24+
};

src/data/services/lms/hooks/selectors/index.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,19 +57,21 @@ export const useStepState = ({ step = null } = {}) => {
5757
if (stepName === stepNames.peer && stepInfo?.peer) {
5858
const config = stepConfig[stepName];
5959
const { numberOfAssessmentsCompleted, numberOfReceivedAssessments } = stepInfo.peer;
60-
const { minNumberToGrade, minNumberToBeGradedBy, startDatetime, endDatetime } = config;
60+
const {
61+
minNumberToGrade, minNumberToBeGradedBy, startDatetime, endDatetime,
62+
} = config;
6163
const gradingDone = minNumberToGrade <= numberOfAssessmentsCompleted;
6264
const receivingDone = minNumberToBeGradedBy <= numberOfReceivedAssessments;
6365
if (now.isBefore(startDatetime)) {
6466
return stepStates.notAvailable;
6567
}
66-
else if (now.isAfter(endDatetime)) {
68+
if (now.isAfter(endDatetime)) {
6769
return stepStates.closed;
6870
}
69-
else if (gradingDone && !receivingDone) {
71+
if (gradingDone && !receivingDone) {
7072
return stepStates.waitingForPeerGrades;
7173
}
72-
else if (stepInfo.peer.isWaitingForSubmissions) {
74+
if (stepInfo.peer.isWaitingForSubmissions) {
7375
return stepStates.waiting;
7476
}
7577
}
@@ -80,7 +82,7 @@ export const useStepState = ({ step = null } = {}) => {
8082
if (now.isBefore(startDatetime)) {
8183
return stepStates.notAvailable;
8284
}
83-
else if (now.isAfter(endDatetime)) {
85+
if (now.isAfter(endDatetime)) {
8486
return stepStates.closed;
8587
}
8688
}

src/data/services/lms/hooks/selectors/oraConfig.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,8 @@ export const useEmptyRubric = () => {
7575
}), [rubric]);
7676
};
7777
export const useCriteriaConfig = () => useRubricConfig()?.criteria;
78-
export const useOverallFeedbackConfig = () => useRubricConfig()?.feedbackConfig;
79-
export const useOverallFeedbackPrompt = () => useRubricConfig()?.feedbackConfig?.defaultText;
78+
export const useOverallFeedbackDefaultText = () => useRubricConfig()?.feedbackConfig?.defaultText;
79+
export const useOverallFeedbackInstructions = () => useRubricConfig()?.feedbackConfig?.description;
8080

8181
export const useLeaderboardConfig = (): types.LeaderboardConfig | undefined => (
8282
useORAConfigData()?.leaderboardConfig

src/hooks/assessment.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,5 +245,6 @@ export const {
245245
export const {
246246
useCriteriaConfig,
247247
useEmptyRubric,
248-
useOverallFeedbackPrompt,
248+
useOverallFeedbackDefaultText,
249+
useOverallFeedbackInstructions,
249250
} = lmsSelectors;

src/hooks/assessment.test.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,8 @@ jest.mock('data/services/lms/hooks/selectors', () => ({
4646
useCriteriaConfig: jest.fn(),
4747
useStepInfo: jest.fn(),
4848
useEmptyRubric: jest.fn(),
49-
useOverallFeedbackPrompt: jest.fn(),
49+
useOverallFeedbackDefaultText: jest.fn(),
50+
useOverallFeedbackInstructions: jest.fn(),
5051
useResponseData: jest.fn(),
5152
}));
5253

@@ -619,7 +620,7 @@ describe('Assessment hooks', () => {
619620
[
620621
lmsSelectorKeys.useCriteriaConfig,
621622
lmsSelectorKeys.useEmptyRubric,
622-
lmsSelectorKeys.useOverallFeedbackPrompt,
623+
lmsSelectorKeys.useOverallFeedbackInstructions,
623624
].forEach((key) => testExport(lmsSelectors, key));
624625
});
625626
});

0 commit comments

Comments
 (0)