UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

79 lines (78 loc) 2.59 kB
/** * 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" }) })) })) }));