saleor-dashboard/src/apps/components/AppDetailsPage/AppDetailsPage.test.tsx
Lukasz Ostrowski a1482cc453
Refactor AppDetailsPage to Macaw Next (#3818)
* Refactor AppDetailsPage to Macaw Next

* Update locales

* CR fixes

* Add error boundary
2023-06-29 15:50:13 +02:00

93 lines
2.1 KiB
TypeScript

// @ts-strict-ignore
import { render } from "@testing-library/react";
import React from "react";
import { appDetails } from "../../fixtures";
import { AppDetailsPage } from "./AppDetailsPage";
const mockHeader = jest.fn();
jest.mock("./Header", () => props => {
mockHeader(props);
return <></>;
});
const mockAboutCard = jest.fn();
jest.mock("./AboutCard", () => ({
AboutCard: props => {
mockAboutCard(props);
return <></>;
},
}));
const mockPermissionsCard = jest.fn();
jest.mock("./PermissionsCard", () => ({
PermissionsCard: props => {
mockPermissionsCard(props);
return <></>;
},
}));
const mockDataPrivacyCard = jest.fn();
jest.mock("./DataPrivacyCard", () => ({
DataPrivacyCard: props => {
mockDataPrivacyCard(props);
return <></>;
},
}));
beforeEach(() => {
mockHeader.mockClear();
mockAboutCard.mockClear();
mockPermissionsCard.mockClear();
mockDataPrivacyCard.mockClear();
});
/**
* TODO Rewrite tests to actually render the tree
*/
describe("Apps AppDetailsPage", () => {
it("displays app details when app data passed", () => {
// Arrange
const onAppActivateOpen = jest.fn();
const onAppDeactivateOpen = jest.fn();
const onAppDeleteOpen = jest.fn();
// Act
render(
<AppDetailsPage
data={appDetails}
loading={false}
onAppActivateOpen={onAppActivateOpen}
onAppDeactivateOpen={onAppDeactivateOpen}
onAppDeleteOpen={onAppDeleteOpen}
/>,
);
// Assert
expect(mockHeader).toHaveBeenCalledWith({
data: appDetails,
onAppActivateOpen,
onAppDeactivateOpen,
onAppDeleteOpen,
});
expect(mockAboutCard).toHaveBeenCalledWith(
expect.objectContaining({
aboutApp: appDetails.aboutApp,
loading: false,
}),
);
expect(mockPermissionsCard).toHaveBeenCalledWith(
expect.objectContaining({
permissions: appDetails.permissions,
loading: false,
}),
);
expect(mockDataPrivacyCard).toHaveBeenCalledWith(
expect.objectContaining({
dataPrivacyUrl: appDetails.dataPrivacyUrl,
loading: false,
}),
);
});
});