@etsoo/toolpad
Version:
Dashboard framework extention based on Toolpad Core
41 lines (40 loc) • 2.62 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const jsx_runtime_1 = require("react/jsx-runtime");
const vitest_1 = require("vitest");
const react_1 = require("@testing-library/react");
const user_event_1 = __importDefault(require("@testing-library/user-event"));
const Account_1 = require("./Account");
const describeConformance_1 = __importDefault(require("../utils/describeConformance"));
const AppProviderComponent_1 = require("../AppProvider/AppProviderComponent");
(0, vitest_1.describe)("AppProvider", () => {
(0, describeConformance_1.default)((0, jsx_runtime_1.jsx)(Account_1.Account, {}), () => ({
skip: ["themeDefaultProps"]
}));
(0, vitest_1.test)("renders nothing in button when no authentication", async () => {
(0, react_1.render)((0, jsx_runtime_1.jsx)(Account_1.Account, {}));
(0, vitest_1.expect)(react_1.screen.queryByRole("button")).not.toBeInTheDocument();
});
(0, vitest_1.test)("renders log in button when no session", async () => {
const auth = { signIn: vitest_1.vi.fn(), signOut: vitest_1.vi.fn() };
(0, react_1.render)((0, jsx_runtime_1.jsx)(AppProviderComponent_1.AppProvider, { authentication: auth, children: (0, jsx_runtime_1.jsx)(Account_1.Account, {}) }));
const loginButton = react_1.screen.getByRole("button", { name: "Sign In" });
await user_event_1.default.click(loginButton);
(0, vitest_1.expect)(auth.signIn).toHaveBeenCalled();
});
(0, vitest_1.test)("renders content correctly when there is a session", async () => {
const auth = { signIn: vitest_1.vi.fn(), signOut: vitest_1.vi.fn() };
const session = { user: { name: "John Doe", email: "john@example.com" } };
(0, react_1.render)((0, jsx_runtime_1.jsx)(AppProviderComponent_1.AppProvider, { authentication: auth, session: session, children: (0, jsx_runtime_1.jsx)(Account_1.Account, {}) }));
const userButton = react_1.screen.getByRole("button", { name: "Current User" });
await user_event_1.default.click(userButton);
(0, vitest_1.expect)(react_1.screen.getByText("John Doe")).toBeInTheDocument();
(0, vitest_1.expect)(react_1.screen.getByText("john@example.com")).toBeInTheDocument();
const signOutButton = react_1.screen.getByRole("button", { name: "Sign Out" });
await user_event_1.default.click(signOutButton);
(0, vitest_1.expect)(auth.signOut).toHaveBeenCalled();
});
});