|
15 | 15 | require_relative "./test_utils/TargetDefinitionMock.rb"
|
16 | 16 | require_relative "./test_utils/XcodeprojMock.rb"
|
17 | 17 | require_relative "./test_utils/XcodebuildMock.rb"
|
| 18 | +require_relative "./test_utils/SpecMock.rb" |
18 | 19 |
|
19 | 20 | class UtilsTests < Test::Unit::TestCase
|
20 | 21 | def setup
|
@@ -967,6 +968,108 @@ def test_creatHeaderSearchPathForFrameworks_whenMultiplePlatformsAndExtraPath_cr
|
967 | 968 | "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-macOS/React_Fabric.framework/Headers/react/renderer/components/view/platform/ios",
|
968 | 969 | ])
|
969 | 970 | end
|
| 971 | + |
| 972 | + # ===================== # |
| 973 | + # TEST - Add Dependency # |
| 974 | + # ===================== # |
| 975 | + def test_addDependency_whenNoHeaderSearchPathAndNoVersion_addsThem |
| 976 | + spec = SpecMock.new |
| 977 | + |
| 978 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric") |
| 979 | + |
| 980 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric"}]) |
| 981 | + assert_equal(spec.to_hash["pod_target_xcconfig"], {"HEADER_SEARCH_PATHS" => "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}) |
| 982 | + end |
| 983 | + |
| 984 | + def test_addDependency_whenNoHeaderSearchPathAndVersion_addsThem |
| 985 | + spec = SpecMock.new |
| 986 | + |
| 987 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 988 | + |
| 989 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}]) |
| 990 | + assert_equal(spec.to_hash["pod_target_xcconfig"], {"HEADER_SEARCH_PATHS" => "\"${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric/React_Fabric.framework/Headers\""}) |
| 991 | + end |
| 992 | + |
| 993 | + def test_addDependency_whenHeaderSearchPathAndVersion_addsThemMaintainingTheSearchPaths |
| 994 | + spec = SpecMock.new |
| 995 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 996 | + |
| 997 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 998 | + |
| 999 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}]) |
| 1000 | + 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\""}) |
| 1001 | + end |
| 1002 | + |
| 1003 | + def test_addDependencies_whenHeaderSearchPathAndVersion_addsThemMaintainingTheSearchPaths |
| 1004 | + spec = SpecMock.new |
| 1005 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 1006 | + |
| 1007 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 1008 | + ReactNativePodsUtils.add_dependency(spec, "React-RCTFabric", "PODS_CONFIGURATION_BUILD_DIR", "RCTFabric", :additional_paths => []) |
| 1009 | + |
| 1010 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }]) |
| 1011 | + assert_equal(spec.to_hash["pod_target_xcconfig"], { |
| 1012 | + "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\""}) |
| 1013 | + end |
| 1014 | + |
| 1015 | + def test_addDependencies_whenHeaderSearchPathAndVersionWithAdditionalPaths_addsThemMaintainingTheSearchPaths |
| 1016 | + spec = SpecMock.new |
| 1017 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 1018 | + |
| 1019 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 1020 | + ReactNativePodsUtils.add_dependency(spec, "React-RCTFabric", "PODS_CONFIGURATION_BUILD_DIR", "RCTFabric", :additional_paths => ["react/renderer/components/view/platform/ios"]) |
| 1021 | + |
| 1022 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }]) |
| 1023 | + assert_equal(spec.to_hash["pod_target_xcconfig"], { |
| 1024 | + "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\""}) |
| 1025 | + end |
| 1026 | + |
| 1027 | + def test_addDependencies_whenHeaderSearchPathAndVersionWithAdditionalPathsAndPlatforms_addsThemMaintainingTheSearchPaths |
| 1028 | + spec = SpecMock.new |
| 1029 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 1030 | + $RN_PLATFORMS = ['iOS', 'macOS'] |
| 1031 | + |
| 1032 | + ReactNativePodsUtils.add_dependency(spec, "React-Fabric", "PODS_CONFIGURATION_BUILD_DIR", "React_Fabric", :additional_paths => [], :version => '1000.0.0') |
| 1033 | + ReactNativePodsUtils.add_dependency(spec, "React-RCTFabric", "PODS_CONFIGURATION_BUILD_DIR", "RCTFabric", :additional_paths => ["react/renderer/components/view/platform/ios"]) |
| 1034 | + |
| 1035 | + expected_search_paths = [ |
| 1036 | + "$(PODS_ROOT)/RCT-Folly", |
| 1037 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-iOS/React_Fabric.framework/Headers", |
| 1038 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric-iOS/RCTFabric.framework/Headers", |
| 1039 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric-iOS/RCTFabric.framework/Headers/react/renderer/components/view/platform/ios", |
| 1040 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-Fabric-macOS/React_Fabric.framework/Headers", |
| 1041 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric-macOS/RCTFabric.framework/Headers", |
| 1042 | + "${PODS_CONFIGURATION_BUILD_DIR}/React-RCTFabric-macOS/RCTFabric.framework/Headers/react/renderer/components/view/platform/ios" |
| 1043 | + ] |
| 1044 | + .map { |sp| return "\"#{sp}\"" } |
| 1045 | + .join(" ") |
| 1046 | + |
| 1047 | + assert_equal(spec.dependencies, [{:dependency_name => "React-Fabric", "version" => '1000.0.0'}, {:dependency_name => "React-RCTFabric" }]) |
| 1048 | + assert_equal(spec.to_hash["pod_target_xcconfig"], { |
| 1049 | + "HEADER_SEARCH_PATHS" => expected_search_paths}) |
| 1050 | + end |
| 1051 | + |
| 1052 | + def test_addDependencies_whenSubspecsAndHeaderSearchPathAndVersionWithAdditionalPathsAndPlatforms_addsThemMaintainingTheSearchPaths |
| 1053 | + spec = SpecMock.new |
| 1054 | + spec.pod_target_xcconfig["HEADER_SEARCH_PATHS"] = "\"$(PODS_ROOT)/RCT-Folly\"" |
| 1055 | + $RN_PLATFORMS = ['iOS', 'macOS'] |
| 1056 | + |
| 1057 | + ReactNativePodsUtils.add_dependency(spec, "ReactCommon", "PODS_CONFIGURATION_BUILD_DIR", "ReactCommon", :additional_paths => ["react/nativemodule/core"], :subspec_dependency => 'turbomodule/core') |
| 1058 | + |
| 1059 | + expected_search_paths = [ |
| 1060 | + "$(PODS_ROOT)/RCT-Folly", |
| 1061 | + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-iOS/ReactCommon.framework/Headers", |
| 1062 | + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-iOS/ReactCommon.framework/Headers/react/nativemodule/core", |
| 1063 | + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-macOS/ReactCommon.framework/Headers", |
| 1064 | + "${PODS_CONFIGURATION_BUILD_DIR}/ReactCommon-macOS/ReactCommon.framework/Headers/react/nativemodule/core", |
| 1065 | + ] |
| 1066 | + .map { |sp| return "\"#{sp}\"" } |
| 1067 | + .join(" ") |
| 1068 | + |
| 1069 | + assert_equal(spec.dependencies, [{:dependency_name => "ReactCommon/turbomodule/core"}]) |
| 1070 | + assert_equal(spec.to_hash["pod_target_xcconfig"], { |
| 1071 | + "HEADER_SEARCH_PATHS" => expected_search_paths}) |
| 1072 | + end |
970 | 1073 | end
|
971 | 1074 |
|
972 | 1075 | # ===== #
|
|
0 commit comments