|
10 | 10 | require_relative "./test_utils/FileMock.rb"
|
11 | 11 | require_relative "./test_utils/DirMock.rb"
|
12 | 12 | require_relative "./test_utils/systemUtils.rb"
|
| 13 | +require_relative "./test_utils/CodegenUtilsMock.rb" |
13 | 14 |
|
14 | 15 | class CodegenTests < Test::Unit::TestCase
|
15 | 16 | :third_party_provider_header
|
@@ -182,4 +183,60 @@ def testCheckAndGenerateEmptyThirdPartyProvider_whenBothMissing_buildCodegen()
|
182 | 183 | ]
|
183 | 184 | })
|
184 | 185 | end
|
| 186 | + |
| 187 | + # ================= # |
| 188 | + # Test - RunCodegen # |
| 189 | + # ================= # |
| 190 | + def testRunCodegen_whenNewArchEnabled_runsCodegen |
| 191 | + # Arrange |
| 192 | + app_path = "~/app" |
| 193 | + config_file = "" |
| 194 | + codegen_utils_mock = CodegenUtilsMock.new() |
| 195 | + |
| 196 | + # Act |
| 197 | + run_codegen!(app_path, config_file, :new_arch_enabled => true, :codegen_utils => codegen_utils_mock) |
| 198 | + |
| 199 | + # Assert |
| 200 | + assert_equal(codegen_utils_mock.use_react_native_codegen_discovery_params, [{ |
| 201 | + :app_path=>"~/app", |
| 202 | + :codegen_disabled=>false, |
| 203 | + :codegen_output_dir=>"build/generated/ios", |
| 204 | + :config_file_dir=>"", |
| 205 | + :fabric_enabled=>false, |
| 206 | + :react_native_path=>"../node_modules/react-native" |
| 207 | + }]) |
| 208 | + assert_equal(codegen_utils_mock.get_react_codegen_spec_params, []) |
| 209 | + assert_equal(codegen_utils_mock.generate_react_codegen_spec_params, []) |
| 210 | + end |
| 211 | + |
| 212 | + def testRunCodegen_whenNewArchDisabled_runsCodegen |
| 213 | + # Arrange |
| 214 | + app_path = "~/app" |
| 215 | + config_file = "" |
| 216 | + package_json_file = "~/app/package.json" |
| 217 | + codegen_specs = { "name" => "React-Codegen" } |
| 218 | + codegen_utils_mock = CodegenUtilsMock.new(:react_codegen_spec => codegen_specs) |
| 219 | + |
| 220 | + # Act |
| 221 | + run_codegen!( |
| 222 | + app_path, |
| 223 | + config_file, |
| 224 | + :new_arch_enabled => false, |
| 225 | + :fabric_enabled => true, |
| 226 | + :package_json_file => package_json_file, |
| 227 | + :codegen_utils => codegen_utils_mock) |
| 228 | + |
| 229 | + # Assert |
| 230 | + assert_equal(codegen_utils_mock.use_react_native_codegen_discovery_params, []) |
| 231 | + assert_equal(codegen_utils_mock.get_react_codegen_spec_params, [{ |
| 232 | + :fabric_enabled => true, |
| 233 | + :package_json_file => "~/app/package.json", |
| 234 | + :script_phases => nil |
| 235 | + }]) |
| 236 | + assert_equal(codegen_utils_mock.generate_react_codegen_spec_params, [{ |
| 237 | + :codegen_output_dir=>"build/generated/ios", |
| 238 | + :react_codegen_spec=>{"name"=>"React-Codegen"} |
| 239 | + }]) |
| 240 | + |
| 241 | + end |
185 | 242 | end
|
0 commit comments