UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

93 lines (92 loc) 3.6 kB
/** * DevExtreme (cjs/__internal/core/utils/scroll.test.js) * Version: 25.2.7 * Build date: Tue May 05 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; var _globals = require("@jest/globals"); var _scroll = require("./scroll"); (0, _globals.describe)("Scroll memoize scrollTo", () => { let scrollableMock = { scrollTo: _globals.jest.fn() }; (0, _globals.beforeEach)(() => { scrollableMock = { scrollTo: _globals.jest.fn() } }); (0, _globals.it)("should call origin scrollTo first time", () => { const scrollParams = { top: 10 }; const cachedScrollTo = (0, _scroll.getMemoizeScrollTo)(() => scrollableMock); cachedScrollTo(scrollParams); (0, _globals.expect)(scrollableMock.scrollTo).toHaveBeenCalledWith(scrollParams) }); (0, _globals.it)("should call origin scrollTo with scrollable context", () => { let done = () => {}; const donePromise = new Promise(resolve => { done = resolve }); scrollableMock.scrollTo = _globals.jest.fn().mockImplementation(function() { (0, _globals.expect)(this).toEqual(scrollableMock); done() }); const cachedScrollTo = (0, _scroll.getMemoizeScrollTo)(() => scrollableMock); cachedScrollTo({ top: 10 }); return donePromise }); (0, _globals.it)("should call origin scrollTo if params changed", () => { const scrollParams = [{ top: 10 }, { top: 10, left: 10 }]; const cachedScrollTo = (0, _scroll.getMemoizeScrollTo)(() => scrollableMock); cachedScrollTo(scrollParams[0]); cachedScrollTo(scrollParams[1]); (0, _globals.expect)(scrollableMock.scrollTo).toBeCalledTimes(2); (0, _globals.expect)(scrollableMock.scrollTo).toHaveBeenCalledWith(scrollParams[1]) }); (0, _globals.it)("shouldn't call origin scrollTo if params wasn't change", () => { const scrollParams = [{ left: 10 }, { left: 10 }]; const cachedScrollTo = (0, _scroll.getMemoizeScrollTo)(() => scrollableMock); cachedScrollTo(scrollParams[0]); cachedScrollTo(scrollParams[1]); (0, _globals.expect)(scrollableMock.scrollTo).toBeCalledTimes(1) }); (0, _globals.it)("shouldn't call origin scrollTo if the integer part of params wasn't change", () => { const scrollParams = [{ left: 10.2 }, { left: 10.3 }, { left: 10.4 }]; const cachedScrollTo = (0, _scroll.getMemoizeScrollTo)(() => scrollableMock); cachedScrollTo(scrollParams[0]); cachedScrollTo(scrollParams[1]); cachedScrollTo(scrollParams[2]); (0, _globals.expect)(scrollableMock.scrollTo).toBeCalledTimes(1) }); (0, _globals.it)("should call origin scroll to if params wasn't change and force flag is true", () => { const scrollParams = { left: 10 }; const cachedScrollTo = (0, _scroll.getMemoizeScrollTo)(() => scrollableMock); cachedScrollTo(scrollParams, true); cachedScrollTo(scrollParams, true); cachedScrollTo(scrollParams, true); (0, _globals.expect)(scrollableMock.scrollTo).toBeCalledTimes(3) }) });