import {renderWithOnboardingLayout} from 'sentry-test/onboarding/renderWithOnboardingLayout'; import {screen} from 'sentry-test/reactTestingLibrary'; import {textWithMarkupMatcher} from 'sentry-test/utils'; import {ProductSolution} from 'sentry/components/onboarding/productSelection'; import docs, {AngularConfigType} from './angular'; describe('javascript-angular onboarding docs', function () { it('renders onboarding docs correctly', () => { renderWithOnboardingLayout(docs); // Renders main headings expect(screen.getByRole('heading', {name: 'Install'})).toBeInTheDocument(); expect(screen.getByRole('heading', {name: 'Configure SDK'})).toBeInTheDocument(); expect(screen.getByRole('heading', {name: 'Upload Source Maps'})).toBeInTheDocument(); expect(screen.getByRole('heading', {name: 'Verify'})).toBeInTheDocument(); // Includes import statement expect( screen.getAllByText( textWithMarkupMatcher(/import \* as Sentry from "@sentry\/angular";/) ) ).toHaveLength(2); }); it('displays sample rates by default', () => { renderWithOnboardingLayout(docs, { selectedOptions: { configType: AngularConfigType.APP, }, selectedProducts: [ ProductSolution.ERROR_MONITORING, ProductSolution.PERFORMANCE_MONITORING, ProductSolution.SESSION_REPLAY, ], }); expect( screen.queryByText(textWithMarkupMatcher(/tracesSampleRate/)) ).toBeInTheDocument(); expect( screen.queryByText(textWithMarkupMatcher(/replaysSessionSampleRate/)) ).toBeInTheDocument(); expect( screen.queryByText(textWithMarkupMatcher(/replaysOnErrorSampleRate/)) ).toBeInTheDocument(); }); it('enables performance setting the tracesSampleRate to 1', () => { renderWithOnboardingLayout(docs, { selectedOptions: { configType: AngularConfigType.APP, }, selectedProducts: [ ProductSolution.ERROR_MONITORING, ProductSolution.PERFORMANCE_MONITORING, ], }); expect( screen.getByText(textWithMarkupMatcher(/tracesSampleRate: 1\.0/)) ).toBeInTheDocument(); }); it('enables replay by setting replay samplerates', () => { renderWithOnboardingLayout(docs, { selectedOptions: { configType: AngularConfigType.APP, }, selectedProducts: [ ProductSolution.ERROR_MONITORING, ProductSolution.SESSION_REPLAY, ], }); expect( screen.getByText(textWithMarkupMatcher(/replaysSessionSampleRate: 0\.1/)) ).toBeInTheDocument(); expect( screen.getByText(textWithMarkupMatcher(/replaysOnErrorSampleRate: 1\.0/)) ).toBeInTheDocument(); }); it('enables profiling by setting profiling sample rates', () => { renderWithOnboardingLayout(docs, { selectedOptions: { configType: AngularConfigType.APP, }, selectedProducts: [ProductSolution.ERROR_MONITORING, ProductSolution.PROFILING], }); expect( screen.getByText(textWithMarkupMatcher(/Sentry.browserProfilingIntegration\(\)/)) ).toBeInTheDocument(); expect( screen.getByText(textWithMarkupMatcher(/profilesSampleRate: 1\.0/)) ).toBeInTheDocument(); }); });