devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
119 lines (118 loc) • 3.75 kB
JavaScript
/**
* DevExtreme (esm/__internal/ui/scroll_view/utils/get_element_style.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/
*/
import {
describe,
expect,
it
} from "@jest/globals";
import {
titleize
} from "../../../../core/utils/inflector";
import {
setWindow
} from "../../../../core/utils/window";
import each from "jest-each";
import {
getElementMargin,
getElementOverflowX,
getElementOverflowY,
getElementPadding,
getElementStyle,
getElementTransform
} from "./get_element_style";
describe("getElementStyle", () => {
it("element is not defined", () => {
expect(getElementStyle(null)).toEqual(null)
});
it("hasWindow: false", () => {
setWindow({}, false);
expect(getElementStyle({})).toEqual(null)
});
it("hasWindow: true, window.getComputedStyle: undefined", () => {
setWindow({}, true);
expect(getElementStyle({})).toEqual(void 0)
});
it("hasWindow: true, window.getComputedStyle: { width: 120px }", () => {
setWindow({
getComputedStyle: () => ({
paddingBottom: "120px"
})
}, true);
expect(getElementStyle({})).toEqual({
paddingBottom: "120px"
})
})
});
describe("getElementTransform", () => {
it("element is not defined", () => {
expect(getElementTransform(null)).toEqual("")
});
it("matrix(1, 0, 0, 1, 10, 20)", () => {
setWindow({
getComputedStyle: () => ({
transform: "matrix(1, 0, 0, 1, 10, 20)"
})
}, true);
expect(getElementTransform({})).toEqual("matrix(1, 0, 0, 1, 10, 20)")
})
});
each(["top", "left", "right", "bottom"]).describe("side: %o", side => {
describe(`getElementPadding(element, ${side})`, () => {
it("element is not defined", () => {
expect(getElementPadding(null, side)).toEqual(0)
});
it(`padding${titleize(side)}: 5px`, () => {
setWindow({
getComputedStyle: () => ({
[`padding${titleize(side)}`]: "5px"
})
}, true);
expect(getElementPadding({}, side)).toEqual(5)
})
});
describe(`getElementMargin(element, ${side})`, () => {
it("element is not defined", () => {
expect(getElementMargin(null, side)).toEqual(0)
});
it(`margin${titleize(side)}: 5px`, () => {
setWindow({
getComputedStyle: () => ({
[`margin${titleize(side)}`]: "5px"
})
}, true);
expect(getElementMargin({}, side)).toEqual(5)
})
})
});
describe("getElementOverflowX", () => {
it("element is not defined", () => {
expect(getElementOverflowX(null)).toEqual("visible")
});
it("overflowX: hidden", () => {
setWindow({
getComputedStyle: () => ({
overflowX: "hidden"
})
}, true);
expect(getElementOverflowX({})).toEqual("hidden")
})
});
describe("getElementOverflowY", () => {
it("element is not defined", () => {
expect(getElementOverflowY(null)).toEqual("visible")
});
it("overflowY: hidden", () => {
setWindow({
getComputedStyle: () => ({
overflowY: "hidden"
})
}, true);
expect(getElementOverflowY({})).toEqual("hidden")
})
});