UNPKG

@etsoo/toolpad

Version:

Dashboard framework extention based on Toolpad Core

41 lines (40 loc) 2.62 kB
"use strict"; 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(); }); });