Skip to content

Commit 782dd65

Browse files
committed
test improvements
1 parent d5c24b5 commit 782dd65

File tree

1 file changed

+20
-12
lines changed

1 file changed

+20
-12
lines changed

frontends/main/src/app-pages/DashboardPage/CoursewareDisplay/DashboardDialogs.test.tsx

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ import { EnrollmentDisplay } from "./EnrollmentDisplay"
1010
import * as mitxonline from "api/mitxonline-test-utils"
1111
import { useFeatureFlagEnabled } from "posthog-js/react"
1212
import { setupEnrollments } from "./test-utils"
13+
import { faker } from "@faker-js/faker/locale/en"
14+
import { mockAxiosInstance } from "api/test-utils"
15+
import invariant from "tiny-invariant"
1316

1417
jest.mock("posthog-js/react")
1518
const mockedUseFeatureFlagEnabled = jest
@@ -32,25 +35,25 @@ describe("DashboardDialogs", () => {
3235

3336
test("Opening the unenroll dialog and confirming the unenroll fires the proper API call", async () => {
3437
const { enrollments } = setupApis()
35-
let deleteCalls = 0
36-
for (const enrollment of enrollments) {
37-
setMockResponse.delete(
38-
mitxonline.urls.enrollment.courseEnrollment(enrollment.id),
39-
() => {
40-
deleteCalls++
41-
},
42-
)
43-
}
38+
const enrollment = faker.helpers.arrayElement(enrollments)
39+
40+
setMockResponse.delete(
41+
mitxonline.urls.enrollment.courseEnrollment(enrollment.id),
42+
null,
43+
)
4444
renderWithProviders(<EnrollmentDisplay />)
4545

4646
await screen.findByRole("heading", { name: "My Learning" })
4747

4848
const cards = await screen.findAllByTestId("enrollment-card-desktop")
4949
expect(cards.length).toBe(enrollments.length)
5050

51-
const contextMenuButton = await within(cards[0]).findByLabelText(
52-
"More options",
51+
const card = cards.find(
52+
(c) => !!within(c).queryByText(enrollment.run.title),
5353
)
54+
invariant(card)
55+
56+
const contextMenuButton = await within(card).findByLabelText("More options")
5457
await user.click(contextMenuButton)
5558

5659
const unenrollButton = await screen.findByRole("menuitem", {
@@ -65,6 +68,11 @@ describe("DashboardDialogs", () => {
6568

6669
await user.click(confirmButton)
6770

68-
expect(deleteCalls).toBe(1)
71+
expect(mockAxiosInstance.request).toHaveBeenCalledWith(
72+
expect.objectContaining({
73+
method: "DELETE",
74+
url: mitxonline.urls.enrollment.courseEnrollment(enrollment.id),
75+
}),
76+
)
6977
})
7078
})

0 commit comments

Comments
 (0)