keySettings.spec.tsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import {initializeOrg} from 'sentry-test/initializeOrg';
  2. import {render, screen} from 'sentry-test/reactTestingLibrary';
  3. import {ProjectKey} from 'sentry/views/settings/project/projectKeys/types';
  4. import {KeySettings} from './keySettings';
  5. import {DynamicSDKLoaderOption, sdkLoaderOptions} from './loaderSettings';
  6. describe('Key Settings', function () {
  7. it('renders Loader Script Settings', function () {
  8. const dynamicSdkLoaderOptions = {
  9. [DynamicSDKLoaderOption.HAS_PERFORMANCE]: false,
  10. [DynamicSDKLoaderOption.HAS_REPLAY]: true,
  11. [DynamicSDKLoaderOption.HAS_DEBUG]: false,
  12. };
  13. const params = {
  14. projectId: '1',
  15. keyId: '1',
  16. };
  17. const {organization, project} = initializeOrg({
  18. ...initializeOrg(),
  19. organization: {
  20. ...initializeOrg().organization,
  21. },
  22. router: {
  23. params,
  24. },
  25. });
  26. const data = {
  27. ...(TestStubs.ProjectKeys()[0] as ProjectKey),
  28. dynamicSdkLoaderOptions,
  29. } as ProjectKey;
  30. render(
  31. <KeySettings
  32. data={data}
  33. onRemove={jest.fn()}
  34. organization={organization}
  35. project={project}
  36. params={params}
  37. />
  38. );
  39. // Panel title
  40. expect(screen.getByText('JavaScript Loader Script')).toBeInTheDocument();
  41. // SDK loader options
  42. for (const key of Object.keys(sdkLoaderOptions)) {
  43. expect(screen.getByText(sdkLoaderOptions[key].label)).toBeInTheDocument();
  44. const toggle = screen.getByRole('checkbox', {name: sdkLoaderOptions[key].label});
  45. expect(toggle).toBeEnabled();
  46. if (key === DynamicSDKLoaderOption.HAS_REPLAY) {
  47. expect(toggle).toBeChecked();
  48. } else {
  49. expect(toggle).not.toBeChecked();
  50. }
  51. }
  52. });
  53. });