devextreme
Version:
HTML5 JavaScript Component Suite for Responsive Web Development
79 lines (78 loc) • 2.59 kB
JavaScript
/**
* DevExtreme (esm/__internal/grids/new/grid_core/search/controller.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,
describe,
expect,
it,
jest
} from "@jest/globals";
import {
OptionsControllerMock
} from "../../../../grids/new/grid_core/options_controller/options_controller.mock";
import {
splitHighlightedText
} from "../../../../grids/new/grid_core/search/utils";
import {
getContext
} from "../di.test_utils";
import {
SearchController
} from "./controller";
jest.mock("@ts/grids/new/grid_core/search/utils");
const setup = function() {
let config = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
const context = getContext(config);
return {
options: context.get(OptionsControllerMock),
controller: context.get(SearchController)
}
};
describe("SearchController", (() => {
describe("highlightTextOptions", (() => {
afterEach((() => {
jest.clearAllMocks()
}));
it("should have observable from widget options", (() => {
const {
controller: controller
} = setup({
searchPanel: {
highlightSearchText: true,
highlightCaseSensitive: false,
text: "TEST_SEARCH_STR"
}
});
const stateSlice = controller.highlightTextOptions.peek();
expect(stateSlice).toStrictEqual({
enabled: true,
caseSensitive: false,
searchStr: "TEST_SEARCH_STR"
})
}));
it("getHighlightText method should call util function", (() => {
const {
controller: controller
} = setup({
searchPanel: {
highlightSearchText: true,
highlightCaseSensitive: false,
text: "TEST_SEARCH_STR"
}
});
controller.getHighlightedText("SOURCE_TEXT");
expect(splitHighlightedText).toHaveBeenCalledTimes(1);
expect(splitHighlightedText).toHaveBeenCalledWith("SOURCE_TEXT", {
enabled: true,
caseSensitive: false,
searchStr: "TEST_SEARCH_STR"
})
}))
}))
}));