Files
openpanel/packages/ui-tests/src/tests/layout/header.tsx
Stefan Pejcic 09f9f9502d packages
2024-11-07 19:03:37 +01:00

72 lines
2.3 KiB
TypeScript

import React from "react";
import type { AuthProvider } from "@refinedev/core";
import type { RefineLayoutHeaderProps } from "@refinedev/ui-types";
import { render, TestWrapper } from "@test";
const mockLegacyAuthProvider = {
login: () => Promise.resolve(),
logout: () => Promise.resolve(),
checkError: () => Promise.resolve(),
checkAuth: () => Promise.resolve(),
getPermissions: () => Promise.resolve(["admin"]),
getUserIdentity: () =>
Promise.resolve({ name: "username", avatar: "localhost:3000" }),
};
const mockAuthProvider: AuthProvider = {
check: () => Promise.resolve({ authenticated: true }),
login: () => Promise.resolve({ success: true }),
logout: () => Promise.resolve({ success: true }),
onError: () => Promise.resolve({}),
getPermissions: () => Promise.resolve(["admin"]),
getIdentity: () =>
Promise.resolve({ name: "username", avatar: "localhost:3000" }),
};
export const layoutHeaderTests = (
HeaderElement: React.ComponentType<RefineLayoutHeaderProps>,
): void => {
describe("[@refinedev/ui-tests] Common Tests / Header Element", () => {
// NOTE : Will be removed in v5
it("should render successfull user name and avatar in header with legacy authProvider", async () => {
const { findByText, queryByRole, queryByAltText } = render(
<HeaderElement />,
{
wrapper: TestWrapper({
legacyAuthProvider: mockLegacyAuthProvider,
}),
},
);
await findByText("username");
const imgByRole = queryByRole("img", { queryFallbacks: true });
const imgByAltText = queryByAltText("username");
expect(imgByRole ?? imgByAltText).toHaveAttribute(
"src",
"localhost:3000",
);
});
it("should render successfull user name and avatar in header with authProvider", async () => {
const { findByText, queryByRole, queryByAltText } = render(
<HeaderElement />,
{
wrapper: TestWrapper({
authProvider: mockAuthProvider,
}),
},
);
await findByText("username");
const imgByRole = queryByRole("img", { queryFallbacks: true });
const imgByAltText = queryByAltText("username");
expect(imgByRole ?? imgByAltText).toHaveAttribute(
"src",
"localhost:3000",
);
});
});
};