import {OrganizationFixture} from 'sentry-fixture/organization'; import {ProjectFixture} from 'sentry-fixture/project'; import {render, screen} from 'sentry-test/reactTestingLibrary'; import ConfigStore from 'sentry/stores/configStore'; import NotificationSettingsByEntity from 'sentry/views/settings/account/notifications/notificationSettingsByEntity'; describe('NotificationSettingsByEntity', function () { afterEach(() => { MockApiClient.clearMockResponses(); jest.clearAllMocks(); }); it('should default to the subdomain org', async function () { const organization = OrganizationFixture(); const otherOrganization = OrganizationFixture({ id: '2', slug: 'other-org', name: 'other org', }); ConfigStore.set('customerDomain', { ...ConfigStore.get('customerDomain')!, subdomain: otherOrganization.slug, }); const projectsMock = MockApiClient.addMockResponse({ url: `/organizations/${otherOrganization.slug}/projects/`, method: 'GET', body: [], }); render( ); expect(await screen.findByText(otherOrganization.name)).toBeInTheDocument(); expect(projectsMock).toHaveBeenCalledTimes(1); }); it('should load from the organization region', async function () { const organization = OrganizationFixture(); const deOrg = OrganizationFixture({ id: '2', slug: 'de-org', name: 'de org', links: { organizationUrl: 'https://de-org.sentry.io', regionUrl: 'https://de.sentry.io', }, }); ConfigStore.set('customerDomain', { ...ConfigStore.get('customerDomain')!, subdomain: deOrg.slug, }); const projectsMock = MockApiClient.addMockResponse({ url: `/organizations/${deOrg.slug}/projects/`, method: 'GET', body: [ProjectFixture({organization: deOrg})], match: [ function (_url: string, options: Record) { return options.host === 'https://de.sentry.io'; }, ], }); render( ); expect(await screen.findByText(deOrg.name)).toBeInTheDocument(); expect(projectsMock).toHaveBeenCalledTimes(1); }); });