import {mountWithTheme} from 'sentry-test/enzyme'; import EventVitals from 'sentry/components/events/eventVitals'; function makeEvent(measurements = {}, sdk = {version: '5.27.3'}) { const formattedMeasurements = {}; for (const [name, value] of Object.entries(measurements)) { formattedMeasurements[name] = {value}; } const event = {measurements: formattedMeasurements}; if (sdk !== null) { event.sdk = sdk; } return event; } describe('EventVitals', function () { it('should not render anything', function () { const event = makeEvent({}); const wrapper = mountWithTheme(); expect(wrapper.isEmptyRender()).toBe(true); }); it('should not render non web vitals', function () { const event = makeEvent({ 'mark.stuff': 123, 'op.more.stuff': 123, }); const wrapper = mountWithTheme(); expect(wrapper.isEmptyRender()).toBe(true); }); it('should render some web vitals with a header', function () { const event = makeEvent({ fp: 1, fcp: 2, lcp: 3, fid: 4, cls: 0.1, ttfb: 5, 'ttfb.requesttime': 6, }); const wrapper = mountWithTheme(); expect(wrapper.find('SectionHeading').text()).toEqual('Web Vitals'); expect(wrapper.find('WarningIconContainer').exists()).toBe(false); expect(wrapper.find('EventVital')).toHaveLength(7); }); it('should render some web vitals with a heading and a sdk warning', function () { const event = makeEvent({fp: 1}, {version: '5.26.0'}); const wrapper = mountWithTheme(); expect(wrapper.find('SectionHeading').text()).toEqual('Web Vitals'); expect(wrapper.find('WarningIconContainer').exists()).toBe(true); expect(wrapper.find('EventVital')).toHaveLength(1); }); it('should show fire icon if vital failed threshold', function () { const event = makeEvent({ fp: 5000, fcp: 5000, lcp: 5000, fid: 4, cls: 0.1, ttfb: 5, 'ttfb.requesttime': 6, }); const wrapper = mountWithTheme(); expect(wrapper.find('SectionHeading').text()).toEqual('Web Vitals'); expect(wrapper.find('EventVital')).toHaveLength(7); expect(wrapper.find('IconFire')).toHaveLength(3); }); });