From 76b8b1dc8bcae386dde6ff46d744edb3c8fc6613 Mon Sep 17 00:00:00 2001 From: Rick Hanlon Date: Mon, 12 Aug 2019 13:48:09 -0700 Subject: [PATCH] Add object prop tests for unchanged fixtures Summary: This diff adds snapshot updates for the new object props test fixtures whose implementation does not need to change (e.g. event emitter files will not change when object props are implemented). This is for easier reviewability in later diffs. Notes that in the files that will change, we're temporarily filtering the OBJECT_PROPS test fixture Reviewed By: TheSavior Differential Revision: D16759124 fbshipit-source-id: 8aae063614f762c8bd7bf092b0d274804c38dd14 --- .../components/__test_fixtures__/fixtures.js | 2 +- .../__tests__/GeneratePropsCpp-test.js | 1 + .../__tests__/GeneratePropsH-test.js | 1 + .../GeneratePropsJavaDelegate-test.js | 1 + .../GeneratePropsJavaInterface-test.js | 1 + .../__tests__/GenerateViewConfigJs-test.js | 1 + .../GenerateComponentDescriptorH-test.js.snap | 26 +++++++++++++++ .../GenerateComponentHObjCpp-test.js.snap | 23 +++++++++++++ .../GenerateEventEmitterCpp-test.js.snap | 23 +++++++++++++ .../GenerateEventEmitterH-test.js.snap | 24 ++++++++++++++ .../GenerateShadowNodeCpp-test.js.snap | 23 +++++++++++++ .../GenerateShadowNodeH-test.js.snap | 33 +++++++++++++++++++ .../__snapshots__/GenerateTests-test.js.snap | 28 ++++++++++++++++ 13 files changed, 186 insertions(+), 1 deletion(-) diff --git a/packages/react-native-codegen/src/generators/components/__test_fixtures__/fixtures.js b/packages/react-native-codegen/src/generators/components/__test_fixtures__/fixtures.js index 4bc9eac973a..b65f1bb8f07 100644 --- a/packages/react-native-codegen/src/generators/components/__test_fixtures__/fixtures.js +++ b/packages/react-native-codegen/src/generators/components/__test_fixtures__/fixtures.js @@ -1152,7 +1152,7 @@ module.exports = { IMAGE_PROP, POINT_PROP, ARRAY_PROPS, - // OBJECT_PROPS, + OBJECT_PROPS, MULTI_NATIVE_PROP, ENUM_PROP, EVENT_PROPS, diff --git a/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsCpp-test.js b/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsCpp-test.js index 284c5457aca..499b45f3710 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsCpp-test.js +++ b/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsCpp-test.js @@ -17,6 +17,7 @@ const generator = require('../GeneratePropsCpp.js'); describe('GeneratePropsCpp', () => { Object.keys(fixtures) .sort() + .filter(fixtureName => fixtureName !== 'OBJECT_PROPS') .forEach(fixtureName => { const fixture = fixtures[fixtureName]; diff --git a/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsH-test.js b/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsH-test.js index 23f8769ebeb..df6d0326bec 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsH-test.js +++ b/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsH-test.js @@ -17,6 +17,7 @@ const generator = require('../GeneratePropsH.js'); describe('GeneratePropsH', () => { Object.keys(fixtures) .sort() + .filter(fixtureName => fixtureName !== 'OBJECT_PROPS') .forEach(fixtureName => { const fixture = fixtures[fixtureName]; diff --git a/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsJavaDelegate-test.js b/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsJavaDelegate-test.js index b9c5724c914..1a63057da2f 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsJavaDelegate-test.js +++ b/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsJavaDelegate-test.js @@ -17,6 +17,7 @@ const generator = require('../GeneratePropsJavaDelegate.js'); describe('GeneratePropsJavaDelegate', () => { Object.keys(fixtures) .sort() + .filter(fixtureName => fixtureName !== 'OBJECT_PROPS') .forEach(fixtureName => { const fixture = fixtures[fixtureName]; diff --git a/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsJavaInterface-test.js b/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsJavaInterface-test.js index a14ac875cc7..a160a61fdf3 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsJavaInterface-test.js +++ b/packages/react-native-codegen/src/generators/components/__tests__/GeneratePropsJavaInterface-test.js @@ -17,6 +17,7 @@ const generator = require('../GeneratePropsJavaInterface.js'); describe('GeneratePropsJavaInterface', () => { Object.keys(fixtures) .sort() + .filter(fixtureName => fixtureName !== 'OBJECT_PROPS') .forEach(fixtureName => { const fixture = fixtures[fixtureName]; diff --git a/packages/react-native-codegen/src/generators/components/__tests__/GenerateViewConfigJs-test.js b/packages/react-native-codegen/src/generators/components/__tests__/GenerateViewConfigJs-test.js index 039398cb51d..cad63539052 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/GenerateViewConfigJs-test.js +++ b/packages/react-native-codegen/src/generators/components/__tests__/GenerateViewConfigJs-test.js @@ -17,6 +17,7 @@ const generator = require('../GenerateViewConfigJs.js'); describe('GenerateViewConfigJs', () => { Object.keys(fixtures) .sort() + .filter(fixtureName => fixtureName !== 'OBJECT_PROPS') .forEach(fixtureName => { const fixture = fixtures[fixtureName]; diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateComponentDescriptorH-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateComponentDescriptorH-test.js.snap index 2ad02997bd5..d7de3d32aa9 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateComponentDescriptorH-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateComponentDescriptorH-test.js.snap @@ -390,6 +390,32 @@ using NoPropsNoEventsComponentComponentDescriptor = ConcreteComponentDescriptor< } `; +exports[`GenerateComponentDescriptorH can generate fixture OBJECT_PROPS 1`] = ` +Map { + "ComponentDescriptors.h" => " +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#pragma once + +#include +#include + +namespace facebook { +namespace react { + +using ObjectPropsComponentDescriptor = ConcreteComponentDescriptor; + +} // namespace react +} // namespace facebook +", +} +`; + exports[`GenerateComponentDescriptorH can generate fixture POINT_PROP 1`] = ` Map { "ComponentDescriptors.h" => " diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateComponentHObjCpp-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateComponentHObjCpp-test.js.snap index 3ce781cde79..415a6315706 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateComponentHObjCpp-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateComponentHObjCpp-test.js.snap @@ -444,6 +444,29 @@ NS_ASSUME_NONNULL_END", } `; +exports[`GenerateComponentHObjCpp can generate fixture OBJECT_PROPS 1`] = ` +Map { + "RCTComponentViewHelpers.h" => "/** +* Copyright (c) Facebook, Inc. and its affiliates. +* +* This source code is licensed under the MIT license found in the +* LICENSE file in the root directory of this source tree. +*/ + +#import +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RCTObjectPropsViewProtocol + +@end + +NS_ASSUME_NONNULL_END", +} +`; + exports[`GenerateComponentHObjCpp can generate fixture POINT_PROP 1`] = ` Map { "RCTComponentViewHelpers.h" => "/** diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterCpp-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterCpp-test.js.snap index 7b21c6b3a75..6bd660d7b5e 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterCpp-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterCpp-test.js.snap @@ -402,6 +402,29 @@ namespace react { +} // namespace react +} // namespace facebook +", +} +`; + +exports[`GenerateEventEmitterCpp can generate fixture OBJECT_PROPS 1`] = ` +Map { + "EventEmitters.cpp" => " +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#include + +namespace facebook { +namespace react { + + + } // namespace react } // namespace facebook ", diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterH-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterH-test.js.snap index f8dacb3b105..7f86c296539 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterH-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateEventEmitterH-test.js.snap @@ -435,6 +435,30 @@ namespace react { +} // namespace react +} // namespace facebook +", +} +`; + +exports[`GenerateEventEmitterH can generate fixture OBJECT_PROPS 1`] = ` +Map { + "EventEmitters.h" => " +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +#pragma once + +#include + +namespace facebook { +namespace react { + + + } // namespace react } // namespace facebook ", diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeCpp-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeCpp-test.js.snap index a62e4d17fdb..91de5725725 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeCpp-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeCpp-test.js.snap @@ -345,6 +345,29 @@ extern const char NoPropsNoEventsComponentComponentName[] = \\"NoPropsNoEventsCo } `; +exports[`GenerateShadowNodeCpp can generate fixture OBJECT_PROPS 1`] = ` +Map { + "ShadowNodes.cpp" => " +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#include + +namespace facebook { +namespace react { + +extern const char ObjectPropsComponentName[] = \\"ObjectProps\\"; + +} // namespace react +} // namespace facebook +", +} +`; + exports[`GenerateShadowNodeCpp can generate fixture POINT_PROP 1`] = ` Map { "ShadowNodes.cpp" => " diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeH-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeH-test.js.snap index 7d3962d5034..739a29c5f88 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeH-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateShadowNodeH-test.js.snap @@ -485,6 +485,39 @@ using NoPropsNoEventsComponentShadowNode = ConcreteViewShadowNode< } `; +exports[`GenerateShadowNodeH can generate fixture OBJECT_PROPS 1`] = ` +Map { + "ShadowNodes.h" => " +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +#pragma once + +#include +#include + +namespace facebook { +namespace react { + +extern const char ObjectPropsComponentName[]; + +/* + * \`ShadowNode\` for component. + */ +using ObjectPropsShadowNode = ConcreteViewShadowNode< + ObjectPropsComponentName, + ObjectPropsProps>; + +} // namespace react +} // namespace facebook +", +} +`; + exports[`GenerateShadowNodeH can generate fixture POINT_PROP 1`] = ` Map { "ShadowNodes.h" => " diff --git a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateTests-test.js.snap b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateTests-test.js.snap index e44041d6138..a3d849530ca 100644 --- a/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateTests-test.js.snap +++ b/packages/react-native-codegen/src/generators/components/__tests__/__snapshots__/GenerateTests-test.js.snap @@ -603,6 +603,34 @@ TEST(NoPropsNoEventsComponentProps_DoesNotDie, etc) { } `; +exports[`GenerateTests can generate fixture OBJECT_PROPS 1`] = ` +Map { + "Tests.cpp" => "/** + * Copyright (c) Facebook, Inc. and its 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 + +using namespace facebook::react; + +TEST(ObjectPropsProps_DoesNotDie, etc) { + auto propParser = RawPropsParser(); + propParser.prepare(); + auto const &sourceProps = ObjectPropsProps(); + auto const &rawProps = RawProps(folly::dynamic::object(\\"xx_invalid_xx\\", \\"xx_invalid_xx\\")); + rawProps.parse(propParser); + ObjectPropsProps(sourceProps, rawProps); +}", +} +`; + exports[`GenerateTests can generate fixture POINT_PROP 1`] = ` Map { "Tests.cpp" => "/**