Skip to content

Commit c72b426

Browse files
Riccardo Cipolleschifacebook-github-bot
Riccardo Cipolleschi
authored andcommitted
Extract Codegen code from the react_native_pods to its own file (#34176)
Summary: Pull Request resolved: #34176 It extracts the code related to the codegen from the main `react_native_pods` script to a dedicated file, adding also tests. ## Changelog [iOS][Changed] - Move codegen in separate files Differential Revision: D37755818 fbshipit-source-id: b0dccea0228abef532c63f0f7047bfe17ec170c8
1 parent 191eb62 commit c72b426

12 files changed

+1010
-236
lines changed

scripts/cocoapods/__tests__/codegen-test.rb

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
require_relative "./test_utils/FileMock.rb"
1111
require_relative "./test_utils/DirMock.rb"
1212
require_relative "./test_utils/systemUtils.rb"
13+
require_relative "./test_utils/CodegenUtilsMock.rb"
1314

1415
class CodegenTests < Test::Unit::TestCase
1516
:third_party_provider_header
@@ -182,4 +183,60 @@ def testCheckAndGenerateEmptyThirdPartyProvider_whenBothMissing_buildCodegen()
182183
]
183184
})
184185
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
185242
end

0 commit comments

Comments
 (0)