diff --git a/tests/YGStyleTest.cpp b/tests/YGStyleTest.cpp index 5de45e45..08b7be2c 100644 --- a/tests/YGStyleTest.cpp +++ b/tests/YGStyleTest.cpp @@ -57,3 +57,26 @@ TEST(YogaTest, copy_style_modified_same) { YGNodeFree(node0); YGNodeFree(node1); } + +TEST(YogaTest, initialise_flexShrink_flexGrow) { + const YGNodeRef node0 = YGNodeNew(); + YGNodeStyleSetFlexShrink(node0, 1); + ASSERT_EQ(1, YGNodeStyleGetFlexShrink(node0)); + + YGNodeStyleSetFlexShrink(node0, YGUndefined); + YGNodeStyleSetFlexGrow(node0, 3); + ASSERT_EQ( + 0, + YGNodeStyleGetFlexShrink( + node0)); // Default value is Zero, if flex shrink is not defined + ASSERT_EQ(3, YGNodeStyleGetFlexGrow(node0)); + + YGNodeStyleSetFlexGrow(node0, YGUndefined); + YGNodeStyleSetFlexShrink(node0, 3); + ASSERT_EQ( + 0, + YGNodeStyleGetFlexGrow( + node0)); // Default value is Zero, if flex grow is not defined + ASSERT_EQ(3, YGNodeStyleGetFlexShrink(node0)); + YGNodeFree(node0); +} diff --git a/yoga/Yoga.cpp b/yoga/Yoga.cpp index e38ff268..b21b23d2 100644 --- a/yoga/Yoga.cpp +++ b/yoga/Yoga.cpp @@ -778,7 +778,7 @@ void YGNodeStyleSetFlexShrink(const YGNodeRef node, const float flexShrink) { if (!YGFloatOptionalFloatEquals(node->getStyle().flexShrink, flexShrink)) { YGStyle style = node->getStyle(); if (YGFloatIsUndefined(flexShrink)) { - style.flexGrow = {true, 0}; + style.flexShrink = {true, 0}; } else { style.flexShrink = {false, flexShrink}; }