Skip to content

Commit 3061d0d

Browse files
authored
Merge pull request #1457 from isaacphysics/improvement/remove-confusing-text-from-test-view
remove confusing text from View Test page
2 parents 0cb40a5 + b6ee47a commit 3061d0d

File tree

6 files changed

+22
-27
lines changed

6 files changed

+22
-27
lines changed

src/app/components/elements/quiz/QuizContentsComponent.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,16 @@ function QuizDetails({attempt, sections, questions, pageLink}: QuizAttemptProps)
121121

122122
function QuizHeader({attempt, preview, view, user}: QuizAttemptProps | QuizViewProps) {
123123
const dispatch = useAppDispatch();
124-
if (preview || view) {
125-
const quiz = view ? view.quiz : attempt.quiz;
124+
if (view) {
125+
return isTeacherOrAbove(user) && <Button className="float-end ms-3 mb-3" onClick={() => dispatch(showQuizSettingModal(view.quiz!))}>Set Test</Button>;
126+
}
127+
else if (preview) {
126128
return <>
127-
{preview && <EditContentButton doc={attempt.quiz} />}
129+
<EditContentButton doc={attempt.quiz} />
128130
<div data-testid="quiz-action" className="d-flex">
129-
<p>{ preview ? "You are previewing this test." : "You are viewing the rubric for this test."}</p>
131+
<p>You are previewing this test.</p>
130132
<Spacer />
131-
{isTeacherOrAbove(user) && <Button onClick={() => dispatch(showQuizSettingModal(quiz!))}>Set Test</Button>}
133+
{isTeacherOrAbove(user) && <Button onClick={() => dispatch(showQuizSettingModal(attempt.quiz!))}>Set Test</Button>}
132134
</div>
133135
</>;
134136
} else if (isDefined(attempt.quizAssignment)) {
@@ -163,8 +165,7 @@ function QuizRubric({attempt, view}: Pick<QuizAttemptProps | QuizViewProps, "att
163165
const rubric = attempt ? attempt.quiz?.rubric : view?.quiz?.rubric;
164166
const renderRubric = (rubric?.children || []).length > 0;
165167
return <div>
166-
{rubric && renderRubric && <div>
167-
<h4>Instructions</h4>
168+
{rubric && renderRubric && <div data-testid="quiz-rubric">
168169
<IsaacContentValueOrChildren value={rubric.value}>
169170
{rubric.children}
170171
</IsaacContentValueOrChildren>

src/test/helpers/quiz.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ export const expectErrorMessage = expectTextInElementWithId('error-message');
1212

1313
export const expectActionMessage = expectTextInElementWithId('quiz-action');
1414

15+
export const expectRubric = expectTextInElementWithId('quiz-rubric');
16+
1517
export const setTestButton = () => screen.queryByRole('button', {name: "Set Test"});
1618

1719
export const editButton = () => screen.queryByRole('heading', {name: "Published ✎"});

src/test/pages/QuizAttempt.test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { expectLinkWithEnabledBackwardsNavigation, expectH1, expectH4, expectTitledSection, expectUrl } from "../testUtils";
1+
import { expectLinkWithEnabledBackwardsNavigation, expectH1, expectH4, expectUrl } from "../testUtils";
22
import {mockAttempts} from "../../mocks/data";
33
import { siteSpecific } from "../../app/services";
4-
import { expectActionMessage, expectBreadcrumbs, expectErrorMessage, renderQuizPage, testSectionsHeader } from "../helpers/quiz";
4+
import { expectActionMessage, expectBreadcrumbs, expectErrorMessage, expectRubric, renderQuizPage, testSectionsHeader } from "../helpers/quiz";
55

66
describe("QuizAttempt", () => {
77
const quizId = Object.keys(mockAttempts)[0];
@@ -29,7 +29,7 @@ describe("QuizAttempt", () => {
2929

3030
it('shows quiz rubric', async () => {
3131
await studentAttemptsQuiz();
32-
expectTitledSection("Instructions", attempt.quiz?.rubric?.children?.[0].value);
32+
expectRubric(attempt.quiz?.rubric?.children?.[0].value);
3333
});
3434

3535
it("shows Test sections that load section and allow navigating back", async () => {

src/test/pages/QuizPreview.test.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { expectLinkWithEnabledBackwardsNavigation, expectH1, expectH4, expectTitledSection, expectUrl } from "../testUtils";
1+
import { expectLinkWithEnabledBackwardsNavigation, expectH1, expectH4, expectUrl } from "../testUtils";
22
import {mockPreviews} from "../../mocks/data";
33
import { siteSpecific } from "../../app/services";
4-
import { expectActionMessage, expectBreadcrumbs, expectErrorMessage, renderQuizPage, testSectionsHeader } from "../helpers/quiz";
4+
import { expectActionMessage, expectBreadcrumbs, expectErrorMessage, expectRubric, renderQuizPage, testSectionsHeader } from "../helpers/quiz";
55

66
describe("QuizPreview", () => {
77
const quizId = Object.keys(mockPreviews)[0];
@@ -29,7 +29,7 @@ describe("QuizPreview", () => {
2929

3030
it('shows quiz rubric', async () => {
3131
await teacherPreviewsQuiz();
32-
expectTitledSection("Instructions", preview.rubric?.children?.[0].value);
32+
expectRubric(preview.rubric?.children?.[0].value);
3333
});
3434

3535
it("shows Test sections that load section and allow navigating back", async () => {

src/test/pages/QuizView.test.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
import { expectLinkWithEnabledBackwardsNavigation, expectH1, expectH4, expectTitledSection, expectUrl } from "../testUtils";
1+
import { expectLinkWithEnabledBackwardsNavigation, expectH1, expectH4, expectUrl } from "../testUtils";
22
import {mockRubrics} from "../../mocks/data";
3-
import { editButton, expectActionMessage, expectBreadcrumbs, expectErrorMessage, previewButton, renderQuizPage, setTestButton, testSectionsHeader } from "../helpers/quiz";
3+
import { editButton, expectBreadcrumbs, expectErrorMessage, expectRubric, previewButton, renderQuizPage, setTestButton, testSectionsHeader } from "../helpers/quiz";
44
import { siteSpecific } from "../../app/services";
5+
import {screen } from "@testing-library/react";
56

67
describe("QuizView", () => {
78
const quizId = Object.keys(mockRubrics)[0];
@@ -20,9 +21,9 @@ describe("QuizView", () => {
2021
expectH1(rubric.title);
2122
});
2223

23-
it('shows message about this page', async () => {
24+
it('does not show message about this page', async () => {
2425
await studentViewsQuiz();
25-
expectActionMessage('You are viewing the rubric for this test.');
26+
expect(screen.queryByTestId("quiz-action")).not.toBeInTheDocument();
2627
});
2728

2829
it('does not show Set Test button', async () => {
@@ -32,7 +33,7 @@ describe("QuizView", () => {
3233

3334
it('shows quiz rubric', async () => {
3435
await studentViewsQuiz();
35-
expectTitledSection("Instructions", rubric.rubric?.children?.[0].value);
36+
expectRubric(rubric.rubric?.children?.[0].value);
3637
});
3738

3839
it("does not show Test sections", async () => {

src/test/testUtils.tsx

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -205,15 +205,6 @@ export const expectH4 = expectHeading(4);
205205

206206
export const expectTextInElementWithId = (testId: string) => (msg: string) => expect(screen.getByTestId(testId)).toHaveTextContent(msg);
207207

208-
export const expectTitledSection = (title: string, message: string | undefined) => {
209-
const titleE = screen.getByRole('heading', { name: title });
210-
if (titleE.parentElement === null) {
211-
throw new Error(`Could not find parent for heading: ${title}`);
212-
}
213-
const [paragraph] = within(titleE.parentElement).getAllByRole('paragraph');
214-
return expect(paragraph).toHaveTextContent(`${message}`);
215-
}
216-
;
217208
export const expectLinkWithEnabledBackwardsNavigation = async (text: string | undefined, targetHref: string, originalHref: string) => {
218209
if (text === undefined) {
219210
throw new Error("Target text is undefined");

0 commit comments

Comments
 (0)