text: /**
   * Copyright (c) 2015-present, Facebook, Inc.
   * All rights reserved.
   *
   * This source code is licensed under the BSD-style license found in the
   * LICENSE file in the root directory of this source tree. An additional grant
   * of patent rights can be found in the PATENTS file in the same directory.
   *
   */
  'use strict';
  
  jest.disableAutomock();
  
  const React = require('React');
  const ReactTestRenderer = require('react-test-renderer');
  
  const VirtualizedList = require('VirtualizedList');
  
  describe('VirtualizedList', () => {
  
    it('renders simple list', () => {
      const component = ReactTestRenderer.create(
        <VirtualizedList
          data={[{key: 'i1'}, {key: 'i2'}, {key: 'i3'}]}
          renderItem={({item}) => <item value={item.key} />}
        />
      );
      expect(component).toMatchSnapshot();
    });
  
    it('renders empty list', () => {
      const component = ReactTestRenderer.create(
        <VirtualizedList
          data={[]}
          renderItem={({item}) => <item value={item.key} />}
        />
      );
      expect(component).toMatchSnapshot();
    });
  
    it('renders null list', () => {
      const component = ReactTestRenderer.create(
        <VirtualizedList
          data={undefined}
          renderItem={({item}) => <item value={item.key} />}
        />
      );
      expect(component).toMatchSnapshot();
    });
  
    it('renders all the bells and whistles', () => {
      const component = ReactTestRenderer.create(
        <VirtualizedList
          ItemSeparatorComponent={() => <separator />}
          ListFooterComponent={() => <footer />}
          ListHeaderComponent={() => <header />}
          data={new Array(5).fill().map((_, ii) => ({id: String(ii)}))}
          keyExtractor={(item, index) => item.id}
          getItemLayout={({index}) => ({length: 50, offset: index * 50})}
          refreshing={false}
          onRefresh={jest.fn()}
          renderItem={({item}) => <item value={item.id} />}
        />
      );
      expect(component).toMatchSnapshot();
    });
  
    it('test getItem functionality where data is not an Array', () => {
      const component = ReactTestRenderer.create(
        <VirtualizedList
          data={new Map([['id_0', {key: 'item_0'}]])}
          getItem={(data, index) => data.get('id_' + index)}
          getItemCount={(data: Map) => data.size}
          renderItem={({item}) => <item value={item.key} />}
        />
      );
      expect(component).toMatchSnapshot();
    });
  
    it('handles separators correctly', () => {
      const infos = [];
      const component = ReactTestRenderer.create(
        <VirtualizedList
          ItemSeparatorComponent={(props) => <separator {...props} />}
          data={[{key: 'i0'}, {key: 'i1'}, {key: 'i2'}]}
          renderItem={(info) => {
            infos.push(info);
            return <item title={info.item.key} />;
          }}
        />
      );
      expect(component).toMatchSnapshot();
      infos[1].separators.highlight();
      expect(component).toMatchSnapshot();
      infos[2].separators.updateProps('leading', {press: true});
      expect(component).toMatchSnapshot();
      infos[1].separators.unhighlight();
    });
  });
  