UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

200 lines (198 loc) • 6.31 kB
/** * DevExtreme (esm/__internal/grids/new/grid_core/search/options.integration.test.js) * Version: 25.1.3 * Build date: Wed Jun 25 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; import { Guid } from "../../../../core/m_guid"; import CardView from "../../../../grids/new/card_view/widget"; import { rerender } from "inferno"; const SELECTORS = { cardContent: "dx-cardview-card-content", searchPanel: "dx-cardview-search-panel", editorInput: "dx-texteditor-input" }; const setup = function() { let options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; const container = document.createElement("div"); const cardView = new CardView(container, options); rerender(); return { container: container, cardView: cardView } }; function getCardContent(container) { rerender(); return container.querySelector(`.${SELECTORS.cardContent}`) } describe("Options", (() => { beforeEach((() => { jest.spyOn(Guid.prototype, "_normalize").mockReturnValue("guidmock") })); afterEach((() => { jest.spyOn(Guid.prototype, "_normalize").mockRestore() })); it("searchPanel.text (card contains match)", (async () => { const { container: container, cardView: cardView } = setup({ dataSource: [{ Name: "John Doe" }], columns: ["Name"], searchPanel: { text: "John" } }); await cardView.dataController.waitLoaded(); rerender(); const content = getCardContent(container); expect(content).toMatchSnapshot() })); it("searchPanel.text (card not contains match)", (async () => { const { container: container, cardView: cardView } = setup({ dataSource: [{ Name: "John Doe" }], columns: ["Name"], searchPanel: { text: "ABC" } }); await cardView.dataController.waitLoaded(); rerender(); const content = getCardContent(container); expect(content).toMatchSnapshot() })); it("searchPanel.highlightCaseSensitive = true", (async () => { const { container: container, cardView: cardView } = setup({ dataSource: [{ Name: "John Doe john" }], columns: ["Name"], searchPanel: { text: "john", highlightCaseSensitive: true } }); await cardView.dataController.waitLoaded(); const content = getCardContent(container); expect(content).toMatchSnapshot() })); it("searchPanel.highlightCaseSensitive = false", (() => { const { container: container } = setup({ dataSource: [{ Name: "John Doe john" }], columns: ["Name"], searchPanel: { text: "john", highlightCaseSensitive: false } }); const content = getCardContent(container); expect(content).toMatchSnapshot() })); it("searchPanel.highlightSearchText = false", (() => { const { container: container } = setup({ dataSource: [{ Name: "John Doe john" }], columns: ["Name"], searchPanel: { text: "john", highlightSearchText: false } }); const content = getCardContent(container); expect(content).toMatchSnapshot() })); it("searchPanel.width", (() => { const { container: container } = setup({ searchPanel: { visible: true, width: 333 } }); rerender(); const searchPanel = container.querySelector(`.${SELECTORS.searchPanel}`); expect(searchPanel).not.toBeNull(); expect(null === searchPanel || void 0 === searchPanel ? void 0 : searchPanel.getAttribute("style")).toContain("width: 333px") })); it("searchPanel.placeholder", (() => { const { container: container } = setup({ searchPanel: { visible: true, placeholder: "Search here" } }); rerender(); const searchPanel = container.querySelector(`.${SELECTORS.searchPanel}`); const searchInput = null === searchPanel || void 0 === searchPanel ? void 0 : searchPanel.querySelector(`.${SELECTORS.editorInput}`); expect(null === searchInput || void 0 === searchInput ? void 0 : searchInput.getAttribute("placeholder")).toContain("Search here") })); it("searchPanel.visible = false", (() => { const { container: container } = setup({ searchPanel: { visible: false } }); rerender(); const searchPanel = container.querySelector(`.${SELECTORS.searchPanel}`); expect(searchPanel).toBeNull() })); it("searchPanel.searchVisibleColumnsOnly = true", (() => { const { container: container } = setup({ dataSource: [{ name: "John Doe john", lastName: "last name" }], columns: ["name", { dataField: "lastName", visible: false }], searchPanel: { visible: true, text: "last", searchVisibleColumnsOnly: true } }); rerender(); const content = container.querySelector(`.${SELECTORS.cardContent}`); expect(content).toBeNull() })) }));