import React from 'react';
import { render } from '@testing-library/react';
import {
    AppConfigContext,
    AuthClientContext,
    SuiteAuthClient,
} from '@theorchard/suite-frontend';
import { MemoryRouter } from 'react-router-dom';
import IdentityProvider from 'src/components/identity-provider';
import { WorkstationConfig, WorkstationUser } from 'src/types';
import hooks from 'src/utils/hooks';
import { WorkstationApplication } from '../app';

describe('WorkstationApplication', () => {
    const config = {} as WorkstationConfig;
    const authClient = {} as SuiteAuthClient;
    const user = {
        id: 123,
    } as WorkstationUser;

    beforeEach(() => {
        jest.spyOn(hooks, 'useRequest').mockReturnValue({
            loading: false,
        });
    });

    test('renders application', () => {
        const { container } = render(
            <AppConfigContext.Provider value={{ config }}>
                <AuthClientContext.Provider value={{ authClient }}>
                    <IdentityProvider user={user} featureFlags={{}}>
                        <MemoryRouter>
                            <WorkstationApplication />
                        </MemoryRouter>
                    </IdentityProvider>
                </AuthClientContext.Provider>
            </AppConfigContext.Provider>
        );

        expect(container).toMatchSnapshot();
    });
});
