Skip to content

Commit 55847d3

Browse files
committed
MAT-6910: additional test coverage for completed/incompleted icons in MeasureDetails
1 parent 7340e63 commit 55847d3

File tree

2 files changed

+168
-11
lines changed

2 files changed

+168
-11
lines changed

src/components/editMeasure/details/MeasureDetails.test.tsx

+167-10
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,80 @@ import { ApiContextProvider, ServiceConfig } from "../../../api/ServiceContext";
88
import MeasureInformation from "./measureInformation/MeasureInformation";
99
import MeasureMetadata from "./measureMetadata/MeasureMetadata";
1010
import { Measure } from "@madie/madie-models";
11+
// @ts-ignore
12+
import { measureStore } from "@madie/madie-util";
1113

12-
const testMeasure = {
14+
const measure = {
1315
id: "1",
14-
measureName: "testMeasure",
16+
measureName: "measure",
1517
cqlLibraryName: "TestLibrary",
16-
model: "QI-Core v4.1.1",
18+
model: "QDM v5.6",
1719
ecqmTitle: "ecqmTitle",
1820
measurementPeriodStart: "01/01/2022",
1921
measurementPeriodEnd: "12/02/2022",
2022
measureMetaData: {
21-
steward: { name: "steward" },
22-
description: "Test Description",
23-
copyright: null,
24-
disclaimer: null,
25-
rationale: null,
23+
steward: {
24+
id: "id",
25+
name: "name",
26+
oid: "oid",
27+
url: "url",
28+
},
29+
developers: [
30+
{
31+
id: "id",
32+
name: "name",
33+
oid: "oid",
34+
url: "url",
35+
},
36+
],
37+
description: "description",
38+
copyright: "copyright",
39+
disclaimer: "disclaimer",
40+
rationale: "rationale",
41+
guidance: "guidance",
42+
clinicalRecommendation: "clinicalRecommendation",
43+
draft: true,
44+
references: [
45+
{
46+
id: "id",
47+
referenceText: "referenceText",
48+
referenceType: "referenceType",
49+
},
50+
],
51+
endorsements: [
52+
{
53+
endorser: "",
54+
endorserSystemId: null,
55+
endorsementId: "",
56+
},
57+
],
58+
definition: "definition",
59+
experimental: null,
60+
transmissionFormat: "transmissionFormat",
61+
measureSetTitle: "measureSetTitle",
62+
cqlMetaData: {
63+
codeSystemMap: {},
64+
},
65+
},
66+
} as unknown as Measure;
67+
68+
const incompletedIconMeasure = {
69+
id: "2",
70+
model: "QDM v5.6",
71+
measureMetaData: {
72+
draft: true,
73+
references: [],
74+
endorsements: [
75+
{
76+
endorser: "",
77+
endorserSystemId: null,
78+
endorsementId: "",
79+
},
80+
],
81+
experimental: null,
82+
cqlMetaData: {
83+
codeSystemMap: {},
84+
},
2685
},
2786
} as unknown as Measure;
2887

@@ -32,8 +91,8 @@ jest.mock("@madie/madie-util", () => ({
3291
useDocumentTitle: jest.fn(),
3392
measureStore: {
3493
updateMeasure: (measure) => measure,
35-
state: jest.fn().mockImplementation(() => testMeasure),
36-
initialState: jest.fn().mockImplementation(() => testMeasure),
94+
state: jest.fn().mockImplementation(() => measure),
95+
initialState: jest.fn().mockImplementation(() => measure),
3796
subscribe: (set) => {
3897
return { unsubscribe: () => null };
3998
},
@@ -385,4 +444,102 @@ describe("MeasureDetails component", () => {
385444
expect(getByTestId("leftPanelMeasureInformation")).toBeInTheDocument();
386445
expect(getByTestId("leftPanelMeasureSet")).toBeInTheDocument();
387446
});
447+
448+
it("should render the tabs in the measure details side nav with completed icons", () => {
449+
render(
450+
<ApiContextProvider value={serviceConfig}>
451+
<MemoryRouter initialEntries={[{ pathname: "/foo" }]}>
452+
<Routes>
453+
<Route
454+
path="/foo"
455+
element={
456+
<MeasureDetails
457+
setErrorMessage={setErrorMessage}
458+
isQDM={true}
459+
/>
460+
}
461+
/>
462+
</Routes>
463+
</MemoryRouter>
464+
</ApiContextProvider>
465+
);
466+
467+
expect(
468+
getByTestId("measure-details-completed-icon-sideNavMeasureInformation")
469+
).toBeInTheDocument();
470+
expect(
471+
getByTestId(
472+
"measure-details-completed-icon-sideNavMeasureModelAndMeasurementPeriod"
473+
)
474+
).toBeInTheDocument();
475+
expect(
476+
getByTestId("measure-details-completed-icon-sideNavMeasureSteward")
477+
).toBeInTheDocument();
478+
expect(
479+
getByTestId("measure-details-completed-icon-sideNavMeasureDescription")
480+
).toBeInTheDocument();
481+
expect(
482+
getByTestId("measure-details-completed-icon-sideNavMeasureRationale")
483+
).toBeInTheDocument();
484+
expect(
485+
getByTestId("measure-details-completed-icon-sideNavMeasureGuidance")
486+
).toBeInTheDocument();
487+
expect(
488+
getByTestId("measure-details-completed-icon-sideNavQDMMeasureDefinition")
489+
).toBeInTheDocument();
490+
expect(
491+
getByTestId(
492+
"measure-details-completed-icon-sideNavMeasureClinicalRecommendation"
493+
)
494+
).toBeInTheDocument();
495+
expect(
496+
getByTestId("measure-details-completed-icon-sideNavMeasureReferences")
497+
).toBeInTheDocument();
498+
expect(
499+
getByTestId("measure-details-completed-icon-sideNavMeasureSet")
500+
).toBeInTheDocument();
501+
expect(
502+
getByTestId("measure-details-completed-icon-sideNavMeasureCopyright")
503+
).toBeInTheDocument();
504+
expect(
505+
getByTestId("measure-details-completed-icon-sideNavMeasureDisclaimer")
506+
).toBeInTheDocument();
507+
});
508+
509+
it("should render the tabs in the measure details side nav with incompleted icons", () => {
510+
measureStore.state.mockImplementationOnce(() => incompletedIconMeasure);
511+
512+
render(
513+
<ApiContextProvider value={serviceConfig}>
514+
<MemoryRouter initialEntries={[{ pathname: "/foo" }]}>
515+
<Routes>
516+
<Route
517+
path="/foo"
518+
element={
519+
<MeasureDetails
520+
setErrorMessage={setErrorMessage}
521+
isQDM={true}
522+
/>
523+
}
524+
/>
525+
</Routes>
526+
</MemoryRouter>
527+
</ApiContextProvider>
528+
);
529+
530+
expect(
531+
getByTestId("measure-details-incompleted-icon-sideNavMeasureInformation")
532+
).toBeInTheDocument();
533+
expect(
534+
getByTestId(
535+
"measure-details-incompleted-icon-sideNavMeasureModelAndMeasurementPeriod"
536+
)
537+
).toBeInTheDocument();
538+
expect(
539+
getByTestId("measure-details-incompleted-icon-sideNavMeasureSteward")
540+
).toBeInTheDocument();
541+
expect(
542+
getByTestId("measure-details-incompleted-icon-sideNavMeasureReferences")
543+
).toBeInTheDocument();
544+
});
388545
});

src/components/editMeasure/details/MeasureDetails.tsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ export default function MeasureDetails(props: MeasureDetailsProps) {
210210
dataTestId: "leftPanelMeasureReferences",
211211
id: "sideNavMeasureReferences",
212212
displayCompletedIcon: measure?.measureMetaData.references?.length > 0,
213-
displayIncompletedIcon: measure?.measureMetaData.references?.length == 0,
213+
displayIncompletedIcon: measure?.measureMetaData.references?.length === 0,
214214
});
215215
links[1].links.push({
216216
title: "Transmission Format",

0 commit comments

Comments
 (0)