/* * Copyright 2023 Avaiga Private Limited * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the * specific language governing permissions and limitations under the License. */ import React from "react"; import {render} from "@testing-library/react"; import "@testing-library/jest-dom"; import mediaQuery from "css-mediaquery"; import { ThemeProvider, createTheme } from "@mui/material/styles"; import Layout from './Layout'; describe("Layout Component", () => { it("renders", async () => { const {getByText} = render(
bar
); const elt = getByText("bar"); expect(elt.parentElement?.tagName).toBe("DIV"); expect(elt.parentElement).toHaveStyle({display: 'grid'}) }) it("displays the right info for string", async () => { const {getByText} = render(
bar
); const elt = getByText("bar"); expect(elt.parentElement).toHaveClass("taipy-layout"); }) it("displays the default value", async () => { const {getByText} = render(
foo
); const elt = getByText("foo"); expect(elt.parentElement).toHaveStyle({"grid-template-columns": "1fr 1fr 1fr 1fr"}) }) it("keeps the grid definition", async () => { const {getByText} = render(
foo
); const elt = getByText("foo"); expect(elt.parentElement).toHaveStyle({"grid-template-columns": "10px 1em 1rem 1fr"}) }) it("handles the concise column expression", async () => { const {getByText} = render(
foo
); const elt = getByText("foo"); expect(elt.parentElement).toHaveStyle({"grid-template-columns": "3px 1fr 1em 1em 1em 2fr 3fr 2fr 2fr 2fr"}) }) it("displays the default value for mobile", async () => { Object.defineProperty(window, "matchMedia", { writable: true, value: jest.fn().mockImplementation(query => ({ matches: mediaQuery.match(query, { width: 10, }), media: query, onchange: null, addListener: jest.fn(), // Deprecated removeListener: jest.fn(), // Deprecated addEventListener: jest.fn(), removeEventListener: jest.fn(), dispatchEvent: jest.fn(), })),}); const {getByText} = render(
foo
); const elt = getByText("foo"); expect(elt.parentElement).toHaveStyle({"grid-template-columns": "1fr"}); }) });