Skip to content

Commit

Permalink
FlatList-test: use act-wrapping abstraction for create
Browse files Browse the repository at this point in the history
Summary:
Migrate FlatList-test to `act`-wrapping abstraction for `react-test-renderer` `create` in preparation for React 19.

Changelog: [Internal]

Reviewed By: yungsters

Differential Revision: D58653845

fbshipit-source-id: 426fcef454927cee0eb2c38ef16c82106354e5d9
  • Loading branch information
robhogan authored and facebook-github-bot committed Jun 17, 2024
1 parent cf6df43 commit 50e65d4
Showing 1 changed file with 26 additions and 28 deletions.
54 changes: 26 additions & 28 deletions packages/react-native/Libraries/Lists/__tests__/FlatList-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@

'use strict';

const {create} = require('../../../jest/renderer');
const FlatList = require('../FlatList');
const React = require('react');
const ReactTestRenderer = require('react-test-renderer');

describe('FlatList', () => {
it('renders simple list', () => {
const component = ReactTestRenderer.create(
it('renders simple list', async () => {
const component = await create(
<FlatList
data={[{key: 'i1'}, {key: 'i2'}, {key: 'i3'}]}
renderItem={({item}) => <item value={item.key} />}
/>,
);
expect(component).toMatchSnapshot();
});
it('renders simple list (multiple columns)', () => {
const component = ReactTestRenderer.create(
it('renders simple list (multiple columns)', async () => {
const component = await create(
<FlatList
data={[{key: 'i1'}, {key: 'i2'}, {key: 'i3'}]}
renderItem={({item}) => <item value={item.key} />}
Expand All @@ -34,23 +34,23 @@ describe('FlatList', () => {
);
expect(component).toMatchSnapshot();
});
it('renders simple list using ListItemComponent', () => {
it('renders simple list using ListItemComponent', async () => {
function ListItemComponent({item}) {
return <item value={item.key} />;
}
const component = ReactTestRenderer.create(
const component = await create(
<FlatList
data={[{key: 'i1'}, {key: 'i2'}, {key: 'i3'}]}
ListItemComponent={ListItemComponent}
/>,
);
expect(component).toMatchSnapshot();
});
it('renders simple list using ListItemComponent (multiple columns)', () => {
it('renders simple list using ListItemComponent (multiple columns)', async () => {
function ListItemComponent({item}) {
return <item value={item.key} />;
}
const component = ReactTestRenderer.create(
const component = await create(
<FlatList
data={[{key: 'i1'}, {key: 'i2'}, {key: 'i3'}]}
ListItemComponent={ListItemComponent}
Expand All @@ -59,23 +59,23 @@ describe('FlatList', () => {
);
expect(component).toMatchSnapshot();
});
it('renders empty list', () => {
const component = ReactTestRenderer.create(
it('renders empty list', async () => {
const component = await create(
<FlatList data={[]} renderItem={({item}) => <item value={item.key} />} />,
);
expect(component).toMatchSnapshot();
});
it('renders null list', () => {
const component = ReactTestRenderer.create(
it('renders null list', async () => {
const component = await create(
<FlatList
data={undefined}
renderItem={({item}) => <item value={item.key} />}
/>,
);
expect(component).toMatchSnapshot();
});
it('renders all the bells and whistles', () => {
const component = ReactTestRenderer.create(
it('renders all the bells and whistles', async () => {
const component = await create(
<FlatList
ItemSeparatorComponent={() => <separator />}
ListEmptyComponent={() => <empty />}
Expand All @@ -92,13 +92,13 @@ describe('FlatList', () => {
);
expect(component).toMatchSnapshot();
});
it('getNativeScrollRef for case where it returns a native view', () => {
it('getNativeScrollRef for case where it returns a native view', async () => {
jest.resetModules();
jest.unmock('../../Components/ScrollView/ScrollView');

const listRef = React.createRef(null);

ReactTestRenderer.create(
await create(
<FlatList
data={[{key: 'outer0'}, {key: 'outer1'}]}
renderItem={outerInfo => (
Expand All @@ -125,7 +125,7 @@ describe('FlatList', () => {
expect(scrollRef.measureInWindow).toBeInstanceOf(jest.fn().constructor);
});

it('getNativeScrollRef for case where it returns a native scroll view', () => {
it('getNativeScrollRef for case where it returns a native scroll view', async () => {
jest.resetModules();
jest.unmock('../../Components/ScrollView/ScrollView');

Expand All @@ -134,7 +134,7 @@ describe('FlatList', () => {
}
const listRef = React.createRef(null);

ReactTestRenderer.create(
await create(
<FlatList
data={[{key: 'i4'}, {key: 'i2'}, {key: 'i3'}]}
ListItemComponent={ListItemComponent}
Expand All @@ -152,7 +152,7 @@ describe('FlatList', () => {
expect(scrollRef.measureInWindow).toBeInstanceOf(jest.fn().constructor);
});

it('calls renderItem for all data items', () => {
it('calls renderItem for all data items', async () => {
const data = [
{key: 'i1'},
null,
Expand All @@ -164,15 +164,13 @@ describe('FlatList', () => {
];

const renderItemInOneColumn = jest.fn();
ReactTestRenderer.create(
<FlatList data={data} renderItem={renderItemInOneColumn} />,
);
await create(<FlatList data={data} renderItem={renderItemInOneColumn} />);

expect(renderItemInOneColumn).toHaveBeenCalledTimes(7);

const renderItemInThreeColumns = jest.fn();

ReactTestRenderer.create(
await create(
<FlatList
data={data}
renderItem={renderItemInThreeColumns}
Expand All @@ -182,24 +180,24 @@ describe('FlatList', () => {

expect(renderItemInThreeColumns).toHaveBeenCalledTimes(7);
});
it('renders array-like data', () => {
it('renders array-like data', async () => {
const arrayLike = {
length: 3,
0: {key: 'i1'},
1: {key: 'i2'},
2: {key: 'i3'},
};

const component = ReactTestRenderer.create(
const component = await create(
<FlatList
data={arrayLike}
renderItem={({item}) => <item value={item.key} />}
/>,
);
expect(component).toMatchSnapshot();
});
it('ignores invalid data', () => {
const component = ReactTestRenderer.create(
it('ignores invalid data', async () => {
const component = await create(
<FlatList
data={123456}
renderItem={({item}) => <item value={item.key} />}
Expand Down

0 comments on commit 50e65d4

Please sign in to comment.