it('snapshot - default close/open', () => {});

// import React, { useState } from 'react';
// import { Button, View } from 'react-native';
// import { render, fireEvent, waitFor, act } from '@testing-library/react-native';
// import { Observable } from 'rxjs';
// import { DatepickerFullscreen } from '.';
// import { TextNative } from '../TextNative';
//
// const fetchGroupMock = (): Observable<any> =>
//    new Observable((observable) => {
//       setTimeout(() => {
//          observable.next([
//             { disabled: true, name: 'Bairro', title: true },
//             { id: 1, name: 'Mogi das cruzes' },
//             { id: 2, name: 'Suzano' },
//             { disabled: true, name: 'Cidade', title: true },
//             { id: 3, name: 'São Paulo' },
//             { id: 4, name: 'Suzano' },
//             { id: 5, name: 'Guarulhos' },
//          ]);
//          observable.complete();
//          observable.unsubscribe();
//       }, 1);
//    });
//
// const fetchMockNotFound = (): Observable<any> =>
//    new Observable((observable) => {
//       setTimeout(() => {
//          observable.next([]);
//          observable.complete();
//          observable.unsubscribe();
//       }, 1);
//    });
//
// const fetchMockError = (): Observable<any> =>
//    new Observable((observable) => {
//       setTimeout(() => {
//          observable.error();
//          observable.complete();
//          observable.unsubscribe();
//       }, 1);
//    });
//
// it('snapshot - default close/open', () => {
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                fetch={fetchGroupMock}
//                onSelect={(i) => {}}
//                onClose={onClose}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//             />
//          </View>
//       );
//    }
//
//    const { toJSON, getByTestId } = render(<Stub />);
//
//    // Close
//    expect(toJSON()).toMatchSnapshot();
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//    expect(toJSON()).toMatchSnapshot();
//
//    // Close
//    fireEvent.press(getByTestId('back-button'));
//    expect(toJSON()).toMatchSnapshot();
// });
//
// it('snapshot - with initial data', () => {
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                fetch={fetchGroupMock}
//                onSelect={(i) => {}}
//                onClose={onClose}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//                initialValue={[
//                   { disabled: true, name: 'Bairro', title: true },
//                   { name: 'Mogi das cruzes' },
//                   { name: 'Suzano' },
//                   { disabled: true, name: 'Cidade', title: true },
//                   { name: 'São Paulo' },
//                   { name: 'Suzano' },
//                   { name: 'Guarulhos' },
//                ]}
//             />
//          </View>
//       );
//    }
//
//    const { toJSON, getByTestId } = render(<Stub />);
//
//    // Close
//    expect(toJSON()).toMatchSnapshot();
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//    expect(toJSON()).toMatchSnapshot();
// });
//
// it('snapshot - loading', async () => {
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                fetch={fetchGroupMock}
//                onSelect={(i) => {}}
//                onClose={onClose}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//             />
//          </View>
//       );
//    }
//
//    const { toJSON, getByTestId, queryByTestId } = render(<Stub />);
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//    expect(toJSON()).toMatchSnapshot();
//
//    fireEvent.changeText(getByTestId('autocomplete#input'), 'text');
//
//    // Loading
//    expect(queryByTestId('autocomplete#loading')).not.toBeNull();
//    expect(toJSON()).toMatchSnapshot();
//
//    // Aguardar resultado
//    await waitFor(() => getByTestId('item-1'));
//
//    // Loading deve sumir
//    expect(queryByTestId('autocomplete#loading')).toBeNull();
//    expect(toJSON()).toMatchSnapshot();
// });
//
// it('snapshot - results', async () => {
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                fetch={fetchGroupMock}
//                onSelect={(i) => {}}
//                onClose={onClose}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//                initialValue={[
//                   { disabled: true, name: 'Bairro', title: true },
//                   { name: 'Mogi das cruzes' },
//                   { name: 'Suzano' },
//                   { disabled: true, name: 'Cidade', title: true },
//                   { name: 'São Paulo' },
//                   { name: 'Suzano' },
//                   { name: 'Guarulhos' },
//                ]}
//             />
//          </View>
//       );
//    }
//
//    const { toJSON, getByTestId, queryByTestId } = render(<Stub />);
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//
//    fireEvent.changeText(getByTestId('autocomplete#input'), 'text');
//
//    // Aguardar resultado
//    await waitFor(() => getByTestId('item-1'));
//    expect(toJSON()).toMatchSnapshot();
// });
//
// it('snapshot - not found', async () => {
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                fetch={fetchMockNotFound}
//                onSelect={(i) => {}}
//                onClose={onClose}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//             />
//          </View>
//       );
//    }
//
//    const { toJSON, getByTestId, getByText } = render(<Stub />);
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//
//    fireEvent.changeText(getByTestId('autocomplete#input'), 'text');
//
//    // Aguardar resultado
//    await waitFor(() => getByText('Nenhum resultado encontrado'));
//    expect(toJSON()).toMatchSnapshot();
// });
//
// it('snapshot - with response error', async () => {
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                fetch={fetchMockError}
//                onSelect={(i) => {}}
//                onClose={onClose}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//             />
//          </View>
//       );
//    }
//
//    const { toJSON, getByTestId, getByText } = render(<Stub />);
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//
//    fireEvent.changeText(getByTestId('autocomplete#input'), 'text');
//
//    // Aguardar resultado
//    await waitFor(() => getByText('Erro ao conectar com servidor, verifique sua conexão!'));
//    expect(toJSON()).toMatchSnapshot();
// });
//
// it('testing onSelect', async () => {
//    const onSelect = jest.fn();
//
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                fetch={fetchGroupMock}
//                onSelect={onSelect}
//                onClose={onClose}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//             />
//          </View>
//       );
//    }
//
//    const { getByTestId, getByText } = render(<Stub />);
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//
//    fireEvent.changeText(getByTestId('autocomplete#input'), 'text');
//
//    // Aguardar resultado
//    await waitFor(() => getByTestId('item-1'));
//
//    fireEvent.press(getByTestId('item-1'));
//
//    expect(onSelect).toHaveBeenCalled();
//    expect(onSelect).toHaveBeenCalledWith({
//       id: 2,
//       name: 'Suzano',
//    });
// });
//
// it('snapshot - multiselection default', async () => {
//    const onSelect = jest.fn();
//
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                multiSelection
//                fetch={fetchGroupMock}
//                onSelect={onSelect}
//                onClose={onClose}
//                mult
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//             />
//          </View>
//       );
//    }
//
//    const { toJSON, getByTestId } = render(<Stub />);
//
//    // Close
//    expect(toJSON()).toMatchSnapshot();
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//    expect(toJSON()).toMatchSnapshot();
//
//    // Close
//    fireEvent.press(getByTestId('back-button'));
//    expect(toJSON()).toMatchSnapshot();
// });
//
// it('snapshot - multiselection with initialValue', async () => {
//    const onSelect = jest.fn();
//
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                multiSelection
//                fetch={fetchGroupMock}
//                onSelect={onSelect}
//                onClose={onClose}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//                initialValue={[
//                   { disabled: true, name: 'Bairro', title: true },
//                   { id: 1, name: 'Mogi das cruzes' },
//                   { id: 2, name: 'Suzano' },
//                   { disabled: true, name: 'Cidade', title: true },
//                   { id: 3, name: 'São Paulo' },
//                   { id: 4, name: 'Suzano' },
//                   { id: 5, name: 'Guarulhos' },
//                ]}
//             />
//          </View>
//       );
//    }
//
//    const { toJSON, getByTestId } = render(<Stub />);
//
//    // Close
//    expect(toJSON()).toMatchSnapshot();
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//    expect(toJSON()).toMatchSnapshot();
//
//    // Close
//    fireEvent.press(getByTestId('back-button'));
//    expect(toJSON()).toMatchSnapshot();
// });
//
// it('snapshot - multiselection with initialValue and initialSelect', async () => {
//    const onSelect = jest.fn();
//
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                multiSelection
//                fetch={fetchGroupMock}
//                onSelect={onSelect}
//                onClose={onClose}
//                renderItemSelected={(item: any) => (
//                   <View
//                      style={{
//                         margin: 5,
//                         paddingVertical: 10,
//                         paddingHorizontal: 15,
//                         backgroundColor: 'black',
//                         borderRadius: 200,
//                      }}
//                   >
//                      <TextNative color="white" size={14}>
//                         {item.name}
//                      </TextNative>
//                   </View>
//                )}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//                initialSelect={[
//                   { id: 1, name: 'Mogi das cruzes' },
//                   { id: 4, name: 'Suzano' },
//                ]}
//                initialValue={[
//                   { disabled: true, name: 'Bairro', title: true },
//                   { id: 1, name: 'Mogi das cruzes' },
//                   { id: 2, name: 'Suzano' },
//                   { disabled: true, name: 'Cidade', title: true },
//                   { id: 3, name: 'São Paulo' },
//                   { id: 4, name: 'Suzano' },
//                   { id: 5, name: 'Guarulhos' },
//                ]}
//             />
//          </View>
//       );
//    }
//
//    const { toJSON, getByTestId } = render(<Stub />);
//
//    // Close
//    expect(toJSON()).toMatchSnapshot();
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//    expect(toJSON()).toMatchSnapshot();
//
//    // Close
//    fireEvent.press(getByTestId('back-button'));
//    expect(toJSON()).toMatchSnapshot();
// });
//
// it('testing onSelect with multiselection', async () => {
//    const onSelect = jest.fn();
//
//    function Stub(): any {
//       const [openModal, setOpenModal] = useState(false);
//
//       function onClose(): void {
//          setOpenModal(false);
//       }
//
//       return (
//          <View style={{ flex: 1, padding: 20 }}>
//             <Button title="Open auto complete" onPress={() => setOpenModal(true)} testID="open" />
//
//             <DatepickerFullscreen
//                show={openModal}
//                fetch={fetchGroupMock}
//                onSelect={onSelect}
//                onClose={onClose}
//                multiSelection
//                renderItemSelected={(item: any) => (
//                   <View
//                      style={{
//                         margin: 5,
//                         paddingVertical: 10,
//                         paddingHorizontal: 15,
//                         backgroundColor: 'black',
//                         borderRadius: 200,
//                      }}
//                   >
//                      <TextNative color="white" size={14}>
//                         {item.name}
//                      </TextNative>
//                   </View>
//                )}
//                renderInput={(item: any) => (
//                   <View style={{ paddingVertical: 10, paddingHorizontal: 25 }}>
//                      <TextNative color={item.title ? '#999' : null}>{item.name}</TextNative>
//                   </View>
//                )}
//             />
//          </View>
//       );
//    }
//
//    const { getByTestId, getByText } = render(<Stub />);
//
//    // Open
//    fireEvent.press(getByTestId('open'));
//
//    fireEvent.changeText(getByTestId('autocomplete#input'), 'text');
//
//    // Aguardar resultado
//    await waitFor(() => getByTestId('item-1'));
//
//    fireEvent.press(getByTestId('item-1'));
//    fireEvent.press(getByTestId('item-4'));
//
//    fireEvent.press(getByTestId('autocomplete#apply'));
//
//    expect(onSelect).toHaveBeenCalled();
//    expect(onSelect).toHaveBeenCalledWith([
//       { id: 2, name: 'Suzano' },
//       { id: 5, name: 'Guarulhos' },
//    ]);
// });
