import {render, screen} from 'sentry-test/reactTestingLibrary';
import {ProfileEventEvidence} from 'sentry/components/events/profileEventEvidence';
import {IssueCategory, IssueType} from 'sentry/types';
describe('ProfileEventEvidence', function () {
const defaultProps = {
event: TestStubs.Event({
id: 'event-id',
occurrence: {
evidenceDisplay: [{name: 'Evidence name', value: 'Evidence value'}],
evidenceData: {
profileId: 'profile-id',
frameName: 'some_func',
framePackage: 'something.dll',
transactionId: 'transaction-id',
transactionName: 'SomeTransaction',
},
},
}),
group: TestStubs.Group({
issueCategory: IssueCategory.PROFILE,
issueType: IssueType.PROFILE_FILE_IO_MAIN_THREAD,
}),
projectSlug: 'project-slug',
};
it('displays profile ID and data in evidence display', function () {
render();
expect(screen.getByRole('cell', {name: 'Transaction Name'})).toBeInTheDocument();
expect(screen.getByRole('cell', {name: /SomeTransaction/})).toBeInTheDocument();
expect(screen.getByRole('cell', {name: 'Profile ID'})).toBeInTheDocument();
expect(screen.getByRole('cell', {name: /profile-id/})).toBeInTheDocument();
expect(screen.getByRole('cell', {name: 'Evidence name'})).toBeInTheDocument();
expect(screen.getByRole('cell', {name: 'Evidence value'})).toBeInTheDocument();
});
it('correctly links to the profile frame', function () {
render();
expect(screen.getByRole('button', {name: 'View Profile'})).toHaveAttribute(
'href',
'/organizations/org-slug/profiling/profile/project-slug/profile-id/flamegraph/?frameName=some_func&framePackage=something.dll&referrer=issue'
);
});
it('correctly links to the transaction', function () {
render();
expect(screen.getByRole('button', {name: 'View Transaction'})).toHaveAttribute(
'href',
'/organizations/org-slug/performance/project-slug:transaction-id/?referrer=issue'
);
});
});