/**
* Copyright (c) 2019 Paul Armstrong
*/
import React from 'react';
import TabularMetadata from '../TabularMetadata';
import TextLink from '../TextLink';
import { View } from 'react-native';
import { fireEvent, render } from 'react-native-testing-library';
describe('TabularMetadata', () => {
describe('header', () => {
test('renders a header with title and button', () => {
const { getByText } = render();
expect(getByText('Tacos')).not.toBeNull();
});
test('on button press, calls onClose method', () => {
const handleClose = jest.fn();
const { getByProps } = render();
fireEvent.press(getByProps({ role: 'button', 'aria-label': 'Close' }));
expect(handleClose).toHaveBeenCalled();
});
test('does not require onClose method', () => {
const { getByProps } = render();
expect(() => fireEvent.press(getByProps({ role: 'button', 'aria-label': 'Close' }))).not.toThrow();
});
});
describe('table', () => {
test('renders rows with data', () => {
const { getByText } = render(
);
expect(getByText('special')).not.toBeNull();
expect(getByText('tacos')).not.toBeNull();
expect(getByText('regular')).not.toBeNull();
expect(getByText('burritos')).not.toBeNull();
});
test('renders links when URLs are provided', () => {
const { getByType } = render(
);
expect(getByType(TextLink).props).toMatchObject({
href: '/tacos-url',
text: 'tacos',
});
});
});
describe('footer', () => {
test('renders footer when provided', () => {
const footer = ;
const { getByTestId } = render();
expect(getByTestId('footer')).not.toBeNull();
});
});
});