|
16 | 16 | require_relative "./test_utils/TargetDefinitionMock.rb"
|
17 | 17 | require_relative "./test_utils/XcodeprojMock.rb"
|
18 | 18 | require_relative "./test_utils/XcodebuildMock.rb"
|
| 19 | +require_relative "./test_utils/SpecMock.rb" |
19 | 20 |
|
20 | 21 | class UtilsTests < Test::Unit::TestCase
|
21 | 22 | def setup
|
@@ -1060,6 +1061,108 @@ def test_creatHeaderSearchPathForFrameworks_whenMultiplePlatformsAndExtraPath_cr
|
1060 | 1061 | "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-macOS/React_Fabric.framework/Headers/react/renderer/components/view/platform/ios",
|
1061 | 1062 | ])
|
1062 | 1063 | end
|
| 1064 | + |
| 1065 | + # ===================== # |
| 1066 | + # TEST - Add Dependency # |
| 1067 | + # ===================== # |
| 1068 | + def test_addDependency_whenNoHeaderSearchPathAndNoVersion_addsThem |
| 1069 | + spec = SpecMock.new |
| 1070 | + |
| 1071 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric") |
| 1072 | + |
| 1073 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric"}]) |
| 1074 | + assert_equal(spec.to_hash["pod_target_xcconfig"], {"HEADER_SEARCH_PATHS" => "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}) |
| 1075 | + end |
| 1076 | + |
| 1077 | + def test_addDependency_whenNoHeaderSearchPathAndVersion_addsThem |
| 1078 | + spec = SpecMock.new |
| 1079 | + |
| 1080 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 1081 | + |
| 1082 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}]) |
| 1083 | + assert_equal(spec.to_hash["pod_target_xcconfig"], {"HEADER_SEARCH_PATHS" => "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}) |
| 1084 | + end |
| 1085 | + |
| 1086 | + def test_addDependency_whenHeaderSearchPathAndVersion_addsThemMaintainingTheSearchPaths |
| 1087 | + spec = SpecMock.new |
| 1088 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 1089 | + |
| 1090 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 1091 | + |
| 1092 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}]) |
| 1093 | + assert_equal(spec.to_hash["pod_target_xcconfig"], {"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/RCT-Folly\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}) |
| 1094 | + end |
| 1095 | + |
| 1096 | + def test_addDependencies_whenHeaderSearchPathAndVersion_addsThemMaintainingTheSearchPaths |
| 1097 | + spec = SpecMock.new |
| 1098 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 1099 | + |
| 1100 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 1101 | + ReactNativePodsUtils.add_dependency(spec, "React-RCTFabric", "PODS_CONFIGURATION_BUILD_DIR", "RCTFabric", :additional_paths => []) |
| 1102 | + |
| 1103 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }]) |
| 1104 | + assert_equal(spec.to_hash["pod_target_xcconfig"], { |
| 1105 | + "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/RCT-Folly\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\""}) |
| 1106 | + end |
| 1107 | + |
| 1108 | + def test_addDependencies_whenHeaderSearchPathAndVersionWithAdditionalPaths_addsThemMaintainingTheSearchPaths |
| 1109 | + spec = SpecMock.new |
| 1110 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 1111 | + |
| 1112 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 1113 | + ReactNativePodsUtils.add_dependency(spec, "React-RCTFabric", "PODS_CONFIGURATION_BUILD_DIR", "RCTFabric", :additional_paths => ["react/renderer/components/view/platform/ios"]) |
| 1114 | + |
| 1115 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }]) |
| 1116 | + assert_equal(spec.to_hash["pod_target_xcconfig"], { |
| 1117 | + "HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/RCT-Folly\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers\" \"${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric/RCTFabric.framework/Headers/react/renderer/components/view/platform/ios\""}) |
| 1118 | + end |
| 1119 | + |
| 1120 | + def test_addDependencies_whenHeaderSearchPathAndVersionWithAdditionalPathsAndPlatforms_addsThemMaintainingTheSearchPaths |
| 1121 | + spec = SpecMock.new |
| 1122 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 1123 | + $RN_PLATFORMS = ['iOS', 'macOS'] |
| 1124 | + |
| 1125 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 1126 | + ReactNativePodsUtils.add_dependency(spec, "React-RCTFabric", "PODS_CONFIGURATION_BUILD_DIR", "RCTFabric", :additional_paths => ["react/renderer/components/view/platform/ios"]) |
| 1127 | + |
| 1128 | + expected_search_paths = [ |
| 1129 | + "$(PODS_ROOT)/RCT-Folly", |
| 1130 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-iOS/React_Fabric.framework/Headers", |
| 1131 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric-iOS/RCTFabric.framework/Headers", |
| 1132 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric-iOS/RCTFabric.framework/Headers/react/renderer/components/view/platform/ios", |
| 1133 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-macOS/React_Fabric.framework/Headers", |
| 1134 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric-macOS/RCTFabric.framework/Headers", |
| 1135 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric-macOS/RCTFabric.framework/Headers/react/renderer/components/view/platform/ios" |
| 1136 | + ] |
| 1137 | + .map { |sp| return "\"#{sp}\"" } |
| 1138 | + .join(" ") |
| 1139 | + |
| 1140 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }]) |
| 1141 | + assert_equal(spec.to_hash["pod_target_xcconfig"], { |
| 1142 | + "HEADER_SEARCH_PATHS" => expected_search_paths}) |
| 1143 | + end |
| 1144 | + |
| 1145 | + def test_addDependencies_whenSubspecsAndHeaderSearchPathAndVersionWithAdditionalPathsAndPlatforms_addsThemMaintainingTheSearchPaths |
| 1146 | + spec = SpecMock.new |
| 1147 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 1148 | + $RN_PLATFORMS = ['iOS', 'macOS'] |
| 1149 | + |
| 1150 | + ReactNativePodsUtils.add_dependency(spec, "ReactCommon", "PODS_CONFIGURATION_BUILD_DIR", "ReactCommon", :additional_paths => ["react/nativemodule/core"], :subspec_dependency => 'turbomodule/core') |
| 1151 | + |
| 1152 | + expected_search_paths = [ |
| 1153 | + "$(PODS_ROOT)/RCT-Folly", |
| 1154 | + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-iOS/ReactCommon.framework/Headers", |
| 1155 | + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-iOS/ReactCommon.framework/Headers/react/nativemodule/core", |
| 1156 | + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-macOS/ReactCommon.framework/Headers", |
| 1157 | + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-macOS/ReactCommon.framework/Headers/react/nativemodule/core", |
| 1158 | + ] |
| 1159 | + .map { |sp| return "\"#{sp}\"" } |
| 1160 | + .join(" ") |
| 1161 | + |
| 1162 | + assert_equal(spec.dependencies, [{:dependency_name => "ReactCommon/turbomodule/core"}]) |
| 1163 | + assert_equal(spec.to_hash["pod_target_xcconfig"], { |
| 1164 | + "HEADER_SEARCH_PATHS" => expected_search_paths}) |
| 1165 | + end |
1063 | 1166 | end
|
1064 | 1167 |
|
1065 | 1168 | # ===== #
|
|
0 commit comments