import {act, render, screen} from 'sentry-test/reactTestingLibrary';
import ProjectsStore from 'sentry/stores/projectsStore';
import {ServerSideSamplingStore} from 'sentry/stores/serverSideSamplingStore';
import {SamplingFromOtherProject} from './samplingFromOtherProject';
import {getMockData, mockedSamplingDistribution} from './testUtils';
export const samplingBreakdownTitle = 'Transaction Breakdown';
describe('Server-Side Sampling - SamplingFromOtherProject', function () {
afterEach(function () {
act(() => ProjectsStore.reset());
act(() => ServerSideSamplingStore.reset());
});
it('renders the parent projects', function () {
const {organization} = getMockData();
const parentProjectBreakdown = mockedSamplingDistribution.parentProjectBreakdown;
ProjectsStore.loadInitialData(
parentProjectBreakdown!.map(p =>
TestStubs.Project({id: p.projectId, slug: p.project})
)
);
ServerSideSamplingStore.distributionRequestSuccess(mockedSamplingDistribution);
render();
expect(screen.getByText('parent-project')).toBeInTheDocument();
expect(
screen.getByText(
'The following project made sampling decisions for this project. You might want to set up rules there.'
)
).toBeInTheDocument();
});
it('does not render if there are no parent projects', function () {
const {organization} = getMockData();
const parentProjectBreakdown = mockedSamplingDistribution.parentProjectBreakdown;
ProjectsStore.loadInitialData(
parentProjectBreakdown!.map(p =>
TestStubs.Project({id: p.projectId, slug: p.project})
)
);
ServerSideSamplingStore.distributionRequestSuccess({
...mockedSamplingDistribution,
parentProjectBreakdown: [],
});
render();
expect(screen.queryByText('parent-project')).not.toBeInTheDocument();
expect(
screen.queryByText(
'The following project made sampling decisions for this project. You might want to set up rules there.'
)
).not.toBeInTheDocument();
});
});