devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
200 lines (198 loc) • 6.31 kB
JavaScript
/**
* 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()
}))
}));