Skip to content

Commit

Permalink
not skip over tests
Browse files Browse the repository at this point in the history
  • Loading branch information
karla-vm committed May 24, 2024
1 parent 0257fc3 commit f508eeb
Show file tree
Hide file tree
Showing 8 changed files with 98 additions and 85 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,7 @@ import { EntityDetailsOverlay } from "./EntityDetailsOverlay";
// utils
import {
mockAdminUserStore,
mockEntityDetailsContext,
mockMLRReportEntityStartedFieldData,
mockEntityStore,
mockModalOverlayForm,
mockStateUserStore,
RouterWrappedComponent,
Expand All @@ -15,7 +14,6 @@ import { useStore } from "utils";
// verbiage
import accordionVerbiage from "../../verbiage/pages/accordion";
import overlayVerbiage from "../../verbiage/pages/overlays";
import { EntityContext } from "components";

const mockCloseEntityDetailsOverlay = jest.fn();
const mockOnSubmit = jest.fn();
Expand All @@ -25,35 +23,25 @@ const mockedUseStore = useStore as jest.MockedFunction<typeof useStore>;

const entityDetailsOverlayComponentStateUser = (
<RouterWrappedComponent>
<EntityContext.Provider value={mockEntityDetailsContext}>
<EntityDetailsOverlay
closeEntityDetailsOverlay={mockCloseEntityDetailsOverlay}
entityType={"program"}
entities={[mockMLRReportEntityStartedFieldData.program[0]]}
form={mockModalOverlayForm}
onSubmit={mockOnSubmit}
disabled={false}
setEntering={jest.fn()}
selectedEntity={mockMLRReportEntityStartedFieldData.program[0]}
/>
</EntityContext.Provider>
<EntityDetailsOverlay
closeEntityDetailsOverlay={mockCloseEntityDetailsOverlay}
form={mockModalOverlayForm}
onSubmit={mockOnSubmit}
disabled={false}
setEntering={jest.fn()}
/>
</RouterWrappedComponent>
);

const entityDetailsOverlayComponentAdminUser = (
<RouterWrappedComponent>
<EntityContext.Provider value={mockEntityDetailsContext}>
<EntityDetailsOverlay
closeEntityDetailsOverlay={mockCloseEntityDetailsOverlay}
entityType={"program"}
entities={[mockMLRReportEntityStartedFieldData.program[0]]}
form={mockModalOverlayForm}
onSubmit={mockOnSubmit}
disabled={true}
setEntering={jest.fn()}
selectedEntity={mockMLRReportEntityStartedFieldData.program[0]}
/>
</EntityContext.Provider>
<EntityDetailsOverlay
closeEntityDetailsOverlay={mockCloseEntityDetailsOverlay}
form={mockModalOverlayForm}
onSubmit={mockOnSubmit}
disabled={true}
setEntering={jest.fn()}
/>
</RouterWrappedComponent>
);

Expand All @@ -63,10 +51,13 @@ describe("Test EntityDetailsOverlayV2 (empty state)", () => {
});

const user = userEvent.setup();
const selectedEntity = mockMLRReportEntityStartedFieldData.program[0];
const selectedEntity = mockEntityStore.selectedEntity;

it("should render the initial view for a state user", async () => {
mockedUseStore.mockReturnValue(mockStateUserStore);
mockedUseStore.mockReturnValue({
...mockStateUserStore,
...mockEntityStore,
});
render(entityDetailsOverlayComponentStateUser);

// Close out of the Overlay it opened
Expand All @@ -83,10 +74,12 @@ describe("Test EntityDetailsOverlayV2 (empty state)", () => {
expect(screen.getByText(accordionHeader)).toBeVisible();

// Check if MLR Report For is showing the correct Entity Data
const reportPlanName = selectedEntity.report_planName;
const reportProgramName = selectedEntity.report_programName;
const eligibilityGroup = selectedEntity.report_eligibilityGroup[0].value;
const reportingPeriod = `${selectedEntity.report_reportingPeriodStartDate} to ${selectedEntity.report_reportingPeriodEndDate}`;
const reportPlanName = selectedEntity!.report_planName;
const reportProgramName = selectedEntity!.report_programName;
const eligibilityGroup = selectedEntity!.report_eligibilityGroup[0].value;
const reportingPeriod = `${
selectedEntity!.report_reportingPeriodStartDate
} to ${selectedEntity!.report_reportingPeriodEndDate}`;

expect(screen.getByText(reportPlanName)).toBeVisible();
expect(screen.getByText(reportProgramName)).toBeVisible();
Expand All @@ -99,7 +92,10 @@ describe("Test EntityDetailsOverlayV2 (empty state)", () => {
});

it("should render the initial view for an admin", async () => {
mockedUseStore.mockReturnValue(mockAdminUserStore);
mockedUseStore.mockReturnValue({
...mockAdminUserStore,
...mockEntityStore,
});
render(entityDetailsOverlayComponentAdminUser);

// Close out of the Overlay it opened
Expand All @@ -116,10 +112,12 @@ describe("Test EntityDetailsOverlayV2 (empty state)", () => {
expect(screen.getByText(accordionHeader)).toBeVisible();

// Check if MLR Report For is showing the correct Entity Data
const reportPlanName = selectedEntity.report_planName;
const reportProgramName = selectedEntity.report_programName;
const eligibilityGroup = selectedEntity.report_eligibilityGroup[0].value;
const reportingPeriod = `${selectedEntity.report_reportingPeriodStartDate} to ${selectedEntity.report_reportingPeriodEndDate}`;
const reportPlanName = selectedEntity!.report_planName;
const reportProgramName = selectedEntity!.report_programName;
const eligibilityGroup = selectedEntity!.report_eligibilityGroup[0].value;
const reportingPeriod = `${
selectedEntity!.report_reportingPeriodStartDate
} to ${selectedEntity!.report_reportingPeriodEndDate}`;

expect(screen.getByText(reportPlanName)).toBeVisible();
expect(screen.getByText(reportProgramName)).toBeVisible();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import React, { MouseEventHandler, useEffect } from "react";
import { Box, Button, Flex, Image, Spinner, Text } from "@chakra-ui/react";
import { Form, ReportPageIntro } from "components";
// types
import { EntityShape, EntityType, FormJson } from "types";
import { EntityShape, FormJson } from "types";
// utils
import { useStore } from "utils";
// assets
Expand Down Expand Up @@ -111,11 +111,8 @@ export const EntityDetailsOverlay = ({

interface Props {
closeEntityDetailsOverlay: Function;
entityType: EntityType;
entities: any;
form: FormJson;
onSubmit: Function;
selectedEntity: EntityShape;
disabled: boolean;
setEntering: Function;
submitting?: boolean;
Expand Down
53 changes: 22 additions & 31 deletions services/ui-src/src/components/reports/EntityProvider.test.tsx
Original file line number Diff line number Diff line change
@@ -1,66 +1,57 @@
import { render } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import { useContext, useEffect } from "react";
import { useContext } from "react";
import { useStore } from "utils";
import {
mockEntityStore,
mockMcparReportStore,
} from "utils/testing/mockZustand";
import { EntityContext, EntityProvider } from "./EntityProvider";

const testEntities = [
{
id: "foo",
},
{
id: "bar",
},
];
const testEntities = { ...mockEntityStore.selectedEntity };

const testEntitiesUpdated = [
{
id: "foo",
id: "mock-id",
type: "plans",
test: "update",
},
{
id: "bar",
},
];

interface Props {
noEntity?: boolean;
}
jest.mock("utils/state/useStore");
const mockedUseStore = useStore as jest.MockedFunction<typeof useStore>;
mockedUseStore.mockReturnValue(mockEntityStore);

const TestComponent = (props: Props) => {
const { entities, setEntities, updateEntities, setSelectedEntity } =
useContext(EntityContext);

useEffect(() => {
setEntities(testEntities);
if (!props.noEntity) {
setSelectedEntity({ id: "foo" });
}
}, [setEntities, setSelectedEntity]);
const TestComponent = () => {
const { prepareEntityPayload } = useContext(EntityContext);

return (
<div>
<button onClick={() => updateEntities({ test: "update" })}>
<button onClick={() => prepareEntityPayload({ test: "update" })}>
Update Entities
</button>
<p id="entities">{JSON.stringify(entities)}</p>
<p>{entities.length}</p>
<p id="entities">{JSON.stringify(mockEntityStore.selectedEntity)}</p>
</div>
);
};

const testComponent = (
<EntityProvider>
<TestComponent noEntity={false} />
<TestComponent />
</EntityProvider>
);

const testComponentNoEntity = (
<EntityProvider>
<TestComponent noEntity={true} />
<TestComponent />
</EntityProvider>
);

describe("Test update entities provider function", () => {
beforeEach(() => {
mockedUseStore.mockReturnValue(mockMcparReportStore);
mockedUseStore.mockReturnValue(mockEntityStore);
});
test("Should update entities if the selected entity is valid", async () => {
const result = await render(testComponent);
expect(
Expand Down
2 changes: 1 addition & 1 deletion services/ui-src/src/components/tables/EntityRow.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ describe("Test EntityRow", () => {
mockedUseStore.mockReturnValue(mockStateUserStore);
});

test.skip("It should render an error if an entity is incomplete", async () => {
test("It should render an error if an entity is incomplete", async () => {
const { findByText } = render(incompleteRowComponent);
expect(
await findByText("Select “Enter MLR” to complete this report.")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,15 +113,15 @@ describe("EntityStatusIcon functionality tests", () => {
const { findByText } = render(entityStatusIconPdfComponent);
expect(await findByText("Complete")).toBeVisible();
});
test.skip("should show a false icon if some required data is missing", () => {
test("should show a false icon if some required data is missing", () => {
const { container } = render(entityStatusIconComponentIncomplete);
expect(container.querySelector("img[alt='warning icon']")).toBeVisible();
});
test.skip("should show special text on a pdf page if required data is missing", async () => {
test("should show special text on a pdf page if required data is missing", async () => {
const { findByText } = render(entityStatusIconComponentIncompletePdf);
expect(await findByText("Error")).toBeVisible();
});
test.skip("should show a false icon if nested required value is missing", () => {
test("should show a false icon if nested required value is missing", () => {
const { container } = render(entityStatusIconComponentIncompleteNested);
expect(container.querySelector("img[alt='warning icon']")).toBeVisible();
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ describe("Test MobileEntityRow", () => {
jest.clearAllMocks();
});

test.skip("It should render an error if an entity is incomplete", async () => {
test("It should render an error if an entity is incomplete", async () => {
const { findByText } = render(incompleteRowComponent);
expect(
await findByText("Select “Enter MLR” to complete this report.")
Expand Down
10 changes: 4 additions & 6 deletions services/ui-src/src/utils/autosave/autosave.test.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { mockStateUserStore } from "utils/testing/setupJest";
import { mockEntityStore, mockStateUserStore } from "utils/testing/setupJest";
import {
autosaveFieldData,
EntityContextShape,
Expand Down Expand Up @@ -42,12 +42,10 @@ const fields = [
];

const mockEntityContext: EntityContextShape = {
updateEntities: jest.fn(() => {
prepareEntityPayload: jest.fn(() => {
return [{ id: "foo", testField: 1, field1: "value1", field2: "value2" }];
}),
entities: [{ id: "foo", testField: 1 }],
entityType: "program",
selectedEntity: { id: "foo" },
selectedEntity: { ...mockEntityStore.selectedEntity! },
};

describe("autosaveFieldData", () => {
Expand Down Expand Up @@ -130,7 +128,7 @@ describe("autosaveFieldData", () => {
lastAlteredBy: "stateuser@test.com",
},
fieldData: {
program: [
plans: [
{ id: "foo", testField: 1, field1: "value1", field2: "value2" },
],
},
Expand Down
31 changes: 30 additions & 1 deletion services/ui-src/src/utils/testing/mockZustand.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import {
// types
import {
AdminBannerState,
entityTypes,
McrEntityState,
McrReportState,
McrUserState,
UserRoles,
Expand Down Expand Up @@ -162,12 +164,39 @@ export const mockEmptyReportStore: McrReportState = {
setLastSavedTime: () => {},
};

// BOUND STORE
// ENTITY STATES / STORE
export const mockEntityStore: McrEntityState = {
selectedEntity: {
id: "mock-id",
type: entityTypes[0],
report_planName: "mock-plan",
report_programName: "mock-programName",
report_programType: [
{
key: "report-programType-mock",
value: "mock value",
},
],
report_eligibilityGroup: [
{
key: "report-eligibilityGroup-mock",
value: "mock value",
},
],
report_reportingPeriodStartDate: "11/11/2011",
report_reportingPeriodEndDate: "11/11/2011",
},
// ACTIONS
setSelectedEntity: () => {},
clearSelectedEntity: () => {},
};

// BOUND STORE
export const mockUseStore: McrUserState & AdminBannerState & McrReportState = {
...mockStateUserStore,
...mockBannerStore,
...mockMcparReportStore,
...mockMlrReport,
...mockEmptyReportStore,
...mockEntityStore,
};

0 comments on commit f508eeb

Please sign in to comment.