From 54609e48ce02411ae9098a02b11cf0ce16d5b798 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 8 Aug 2025 07:11:10 -0700 Subject: [PATCH 1/5] Add tests for Modal.presentationStyle prop Summary: Add Fantom tests for Modal.presentationStyle prop ## Changelog: [Internal] - Differential Revision: D79880310 --- .../Libraries/Modal/__tests__/Modal-itest.js | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js index 042b8c791fed..cf4a991225cc 100644 --- a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js +++ b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js @@ -77,6 +77,44 @@ describe('', () => { }); }); }); + + describe('presentationStyle', () => { + it('renders a Modal with presentationStyle="fullScreen" by default', () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + root.render(); + }); + + expect( + root.getRenderedOutput({props: ['presentationStyle']}).toJSX(), + ).toEqual( + + + , + ); + }); + + (['pageSheet', 'formSheet', 'overFullScreen'] as const).forEach( + presentationStyle => { + it(`renders a Modal with presentationStyle="${presentationStyle}"`, () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + root.render(); + }); + + expect( + root.getRenderedOutput({props: ['presentationStyle']}).toJSX(), + ).toEqual( + + + , + ); + }); + }, + ); + }); // ... more props }); describe('ref', () => { From 5e3a29e5ad47041c0961c33762440d44a9ce2d16 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 8 Aug 2025 07:11:10 -0700 Subject: [PATCH 2/5] Add tests for Modal.transparent prop Summary: Add Fantom tests for Modal.transparent prop ## Changelog: [Internal] - Differential Revision: D79880909 Reviewed By: andrewdacenko --- .../Libraries/Modal/__tests__/Modal-itest.js | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js index cf4a991225cc..68d1a510e2ce 100644 --- a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js +++ b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js @@ -115,6 +115,45 @@ describe('', () => { }, ); }); + describe('transparent', () => { + it('renders a Modal with transparent="true"', () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + root.render(); + }); + + expect( + root + .getRenderedOutput({props: ['transparent', 'presentationStyle']}) + .toJSX(), + ).toEqual( + + + , + ); + }); + + it('renders a Modal with transparent="false"', () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + root.render(); + }); + + expect( + root + .getRenderedOutput({props: ['transparent', 'presentationStyle']}) + .toJSX(), + ).toEqual( + + + , + ); + }); + }); // ... more props }); describe('ref', () => { From eeb21adaf822625ca33c4f91ff6c54ff463a3993 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 8 Aug 2025 07:11:10 -0700 Subject: [PATCH 3/5] Add tests for Modal.statusBarTranslucent prop Summary: Add Fantom tests for Modal.statusBarTranslucent prop ## Changelog: [Internal] - Differential Revision: D79881104 Reviewed By: andrewdacenko --- .../Libraries/Modal/__tests__/Modal-itest.js | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js index 68d1a510e2ce..863f0f27c824 100644 --- a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js +++ b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js @@ -154,6 +154,39 @@ describe('', () => { ); }); }); + describe('statusBarTranslucent', () => { + it('renders a Modal with statusBarTranslucent="true"', () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + root.render(); + }); + + expect( + root.getRenderedOutput({props: ['statusBarTranslucent']}).toJSX(), + ).toEqual( + + + , + ); + }); + it('renders a Modal with statusBarTranslucent="false"', () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + root.render(); + }); + + expect( + root.getRenderedOutput({props: ['statusBarTranslucent']}).toJSX(), + ).toEqual( + + + , + ); + }); + }); + // ... more props }); describe('ref', () => { From b0d4cacb67222eb6827ba9c9d7cc8709771de3cd Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 8 Aug 2025 07:11:10 -0700 Subject: [PATCH 4/5] Add tests for Modal.navigationBarTranslucent prop Summary: Add Fantom tests for Modal.navigationBarTranslucent prop ## Changelog: [Internal] - Differential Revision: D79881358 --- .../Libraries/Modal/__tests__/Modal-itest.js | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js index 863f0f27c824..3dcc06d552a7 100644 --- a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js +++ b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js @@ -186,7 +186,55 @@ describe('', () => { ); }); }); + describe('navigationBarTranslucent', () => { + it('renders a Modal with navigationBarTranslucent="true" and statusBarTranslucent="true"', () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + // navigationBarTranslucent=true with statusBarTranslucent=false is not supported + // and it emits a warning. + root.render( + , + ); + }); + expect( + root + .getRenderedOutput({ + props: ['navigationBarTranslucent', 'statusBarTranslucent'], + }) + .toJSX(), + ).toEqual( + + + , + ); + }); + it('renders a Modal with navigationBarTranslucent="false"', () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + root.render(); + }); + + expect( + root + .getRenderedOutput({ + props: ['navigationBarTranslucent', 'statusBarTranslucent'], + }) + .toJSX(), + ).toEqual( + + + , + ); + }); + }); // ... more props }); describe('ref', () => { From 4dc668a116a396f6c9be90865244e6d8204e0763 Mon Sep 17 00:00:00 2001 From: Riccardo Cipolleschi Date: Fri, 8 Aug 2025 07:21:34 -0700 Subject: [PATCH 5/5] Add tests for Modal.hardwareAccelerated prop (#53162) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53162 Add Fantom tests for Modal.hardwareAccelerated prop ## Changelog: [Internal] - Reviewed By: andrewdacenko Differential Revision: D79881565 --- .../Libraries/Modal/__tests__/Modal-itest.js | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js index 3dcc06d552a7..c858bbc7dde9 100644 --- a/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js +++ b/packages/react-native/Libraries/Modal/__tests__/Modal-itest.js @@ -235,6 +235,39 @@ describe('', () => { ); }); }); + + describe('hardwareAccelerated', () => { + it('renders a Modal with hardwareAccelerated="true"', () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + root.render(); + }); + + expect( + root.getRenderedOutput({props: ['hardwareAccelerated']}).toJSX(), + ).toEqual( + + + , + ); + }); + it('renders a Modal with hardwareAccelerated="false"', () => { + const root = Fantom.createRoot(); + + Fantom.runTask(() => { + root.render(); + }); + + expect( + root.getRenderedOutput({props: ['hardwareAccelerated']}).toJSX(), + ).toEqual( + + + , + ); + }); + }); // ... more props }); describe('ref', () => {