diff --git a/packages/react-native-babel-preset/src/__tests__/transform-snapshot-test.js b/packages/react-native-babel-preset/src/__tests__/transform-snapshot-test.js index 1e972039ee5e..dfe566ba12cd 100644 --- a/packages/react-native-babel-preset/src/__tests__/transform-snapshot-test.js +++ b/packages/react-native-babel-preset/src/__tests__/transform-snapshot-test.js @@ -267,6 +267,33 @@ describe('react-native-babel-preset transform snapshots', () => { ); describe('specific feature transformations', () => { + it('runs codegen when the type arguments are separated by trivia', () => { + const code = ` + // @flow strict-local + import type {ViewProps} from 'react-native'; + import type {HostComponent} from 'react-native'; + import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent'; + + type NativeProps = Readonly<{ + ...ViewProps, + }>; + + export default codegenNativeComponent /* comment */ ( + 'View', + ) as HostComponent; + `; + const config = preset.getPreset(code, {}); + const result = babel.transformSync(code, { + ...config, + babelrc: false, + configFile: false, + filename: MOCK_FILENAME, + sourceMaps: false, + }); + + expect(result?.code).toContain('__INTERNAL_VIEW_CONFIG'); + }); + it('handles async generators', () => { const code = ` async function* gen() { diff --git a/packages/react-native-babel-preset/src/configs/main.js b/packages/react-native-babel-preset/src/configs/main.js index a48b126ca8b8..3c6a03bf3ef5 100644 --- a/packages/react-native-babel-preset/src/configs/main.js +++ b/packages/react-native-babel-preset/src/configs/main.js @@ -139,7 +139,7 @@ const getPreset = (src, options, babel) => { if ( !options.disableStaticViewConfigsCodegen && - (src === null || /\bcodegenNativeComponent