From 00c3dca3dc279836a272a680f549fab546b9ee9e Mon Sep 17 00:00:00 2001 From: Dmitry Ivakhnenko Date: Thu, 26 Jan 2023 17:26:30 +0300 Subject: [PATCH] add measure function test --- javascript/tests/YGMeasureTest.test.js | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/javascript/tests/YGMeasureTest.test.js b/javascript/tests/YGMeasureTest.test.js index d222af6f..71a7c516 100644 --- a/javascript/tests/YGMeasureTest.test.js +++ b/javascript/tests/YGMeasureTest.test.js @@ -23,3 +23,33 @@ test("dont_measure_single_grow_shrink_child", () => { root.freeRecursive(); }); + +test("dont_fail_with_incomplete_measure_dimensions", () => { + const heightOnlyCallback = getMeasureCounter(Yoga, () => ({ height: 10 })); + const widthOnlyCallback = getMeasureCounter(Yoga, () => ({ width: 10 })); + const emptyCallback = getMeasureCounter(Yoga, () => ({})); + + const root = Yoga.Node.create(); + root.setWidth(100); + root.setHeight(100); + + const node1 = Yoga.Node.create(); + const node2 = Yoga.Node.create(); + const node3 = Yoga.Node.create(); + + root.insertChild(node1, root.getChildCount()); + root.insertChild(node2, root.getChildCount()); + root.insertChild(node3, root.getChildCount()); + + node1.setMeasureFunc(heightOnlyCallback); + node1.setMeasureFunc(widthOnlyCallback); + node1.setMeasureFunc(emptyCallback); + + root.calculateLayout(Yoga.UNDEFINED, Yoga.UNDEFINED, Yoga.DIRECTION_LTR); + + expect(heightOnlyCallback.get()).toBe(1); + expect(widthOnlyCallback.get()).toBe(1); + expect(emptyCallback.get()).toBe(1); + + root.freeRecursive(); +});