12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import {ComponentProps} from 'react';
- import styled from '@emotion/styled';
- import {render, screen} from 'sentry-test/reactTestingLibrary';
- import {FeatureDisabledModal} from 'sentry/components/acl/featureDisabledModal';
- import ModalStore from 'sentry/stores/modalStore';
- describe('FeatureTourModal', function () {
- const onCloseModal = jest.fn();
- const styledWrapper = styled(c => c.children);
- const renderComponent = (
- props: Partial<ComponentProps<typeof FeatureDisabledModal>> = {}
- ) =>
- render(
- <FeatureDisabledModal
- Body={styledWrapper()}
- Footer={styledWrapper()}
- Header={() => <span>Header</span>}
- closeModal={onCloseModal}
- CloseButton={() => <button>Close</button>}
- featureName="Default Feature"
- features={['organization:test-feature']}
- {...props}
- />
- );
- beforeEach(function () {
- ModalStore.reset();
- jest.clearAllMocks();
- });
- it('renders', function () {
- const featureName = 'Custom Feature';
- const features = ['organization:custom-feature'];
- renderComponent({
- featureName,
- features,
- });
- expect(
- screen.getByText('This feature is not enabled on your Sentry installation.')
- ).toBeInTheDocument();
- expect(screen.getByText(/# Enables the Custom Feature feature/)).toBeInTheDocument();
- expect(
- screen.getByText(/SENTRY_FEATURES\['organization:custom-feature'\] = True/)
- ).toBeInTheDocument();
- });
- it('renders with custom message', function () {
- const message = 'custom message';
- renderComponent({
- message,
- });
- expect(screen.getByText(message)).toBeInTheDocument();
- });
- });
|