import React from 'react';
import { screen } from '@testing-library/react';
import { renderInAppContext } from '@theorchard/suite-testing';
import ProductBaseTermsForm from 'src/components/contract-terms-form/product-base-terms-form';
import { CONTRACT_TERM_TYPES } from 'src/constants';
import { ContractTermContext } from 'src/contexts/contract-term-context';
import { initialTermState } from 'src/reducers/contract-term/contract-term-reducer';

const componentInContext = (contextValues: any) => (
    <ContractTermContext.Provider value={contextValues}>
        <ProductBaseTermsForm />
    </ContractTermContext.Provider>
);

describe('<ProductBaseTermsForm> tests', () => {
    it('renders <ProductBaseTermsForm>', () => {
        const contextValues = {
            state: {
                ...initialTermState,
                termType: CONTRACT_TERM_TYPES.PRODUCT,
                attachmentsRelations: { labelIds: ['10'] },
            },
            dispatch: jest.fn(),
        };
        renderInAppContext(componentInContext(contextValues));

        expect(screen.getByText('Label')).toBeDefined();
        expect(screen.getByTestId('productSearchTestId')).toBeDefined();
    });
});
