import React from 'react';
import { screen } from '@testing-library/react';
import { renderInAppContext } from '@theorchard/suite-testing';
import * as accountingPeriodDetail from 'src/__fixtures__/graphql/accounting-period-detail-response.json';
import {
    SummaryLink,
    type SummaryLinkPropTypes,
} from 'src/components/accounting-run-list/summary-link';

describe('<SummaryLink>', () => {
    const render = (props: SummaryLinkPropTypes) =>
        renderInAppContext(<SummaryLink {...props} />);

    const { accountingRuns } = accountingPeriodDetail.abacusAccountingPeriod;

    it('renders when accounting run has contractCount', () => {
        const completeRun = accountingRuns.items[3];
        const props = {
            accountingRunId: completeRun.accountingRunId,
            contractCount: completeRun.contractCount,
        };
        render(props);
        const summaryLink = screen.getByTestId(
            `summaryLink-${completeRun.accountingRunId}`
        );
        expect(summaryLink.textContent).toEqual(
            completeRun.contractCount?.toString()
        );
    });

    it('does not render when accounting run has no contractCount', () => {
        const noActionRun = accountingRuns.items[0];
        const props = {
            accountingRunId: noActionRun.accountingRunId,
            contractCount: noActionRun.contractCount,
        };
        render(props);
        expect(
            screen.queryByTestId(`summaryLink-${noActionRun.accountingRunId}`)
        ).toBeNull();
    });
});
