/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ #include #include #include #include #include #include namespace facebook::react { TEST(RootShadowNodeTest, cloneWithLayoutConstraints) { ContextContainer contextContainer{}; PropsParserContext parserContext{-1, contextContainer}; auto builder = simpleComponentBuilder(); std::shared_ptr rootShadowNode; LayoutConstraints defaultLayoutConstraints = {}; auto element = Element().reference(rootShadowNode).tag(1).props([&] { auto sharedProps = std::make_shared(); sharedProps->layoutConstraints = defaultLayoutConstraints; return sharedProps; }); builder.build(element); EXPECT_FALSE(rootShadowNode->getIsLayoutClean()); EXPECT_TRUE(rootShadowNode->layoutIfNeeded()); EXPECT_TRUE(rootShadowNode->getIsLayoutClean()); auto clonedWithDiffentLayoutConstraints = rootShadowNode->clone( parserContext, LayoutConstraints{{0, 0}, {10, 10}}, {}); EXPECT_FALSE(clonedWithDiffentLayoutConstraints->getIsLayoutClean()); EXPECT_TRUE(clonedWithDiffentLayoutConstraints->layoutIfNeeded()); } } // namespace facebook::react