import React from 'react';
import { render } from '@testing-library/react';
import { SuiteInitContext } from '../../../types';
import { SplashHandler } from '../splashHandler';

describe('<SplashHandler>', () => {
    const CHILDREN = 'CHILDREN';
    const data = {
        config: {
            appName: 'test',
            appTitle: 'test',
            brand: 'orchard',
            environment: 'prod',
        },
    } as SuiteInitContext;

    const renderComponent = (loading: boolean) =>
        render(
            <SplashHandler loading={loading} data={data}>
                {CHILDREN}
            </SplashHandler>
        );

    describe('is loading', () => {
        test('renders splash page', () => {
            const { container, getByTestId } = renderComponent(true);
            expect(container).toMatchSnapshot();
            expect(getByTestId('SplashPage')).toBeInTheDocument();
        });
    });

    describe('is not loading', () => {
        test('renders children', () => {
            const { container, getByText, queryByTestId } = renderComponent(false);
            expect(container).toMatchSnapshot();
            expect(getByText(CHILDREN)).toBeInTheDocument();
            expect(queryByTestId('SplashPage')).toBeNull();
        });
    });
});
