import {OrganizationFixture} from 'sentry-fixture/organization'; import {TeamFixture} from 'sentry-fixture/team'; import {initializeOrg} from 'sentry-test/initializeOrg'; import {render, screen, userEvent} from 'sentry-test/reactTestingLibrary'; import TeamStore from 'sentry/stores/teamStore'; import TeamDetails from 'sentry/views/settings/organizationTeams/teamDetails'; describe('TeamMembers', () => { let joinMock; const organization = OrganizationFixture(); const team = TeamFixture({hasAccess: false}); const teamHasAccess = TeamFixture({id: '1337', slug: 'django', hasAccess: true}); beforeEach(() => { TeamStore.init(); TeamStore.loadInitialData([team, teamHasAccess]); joinMock = MockApiClient.addMockResponse({ url: `/organizations/${organization.slug}/members/me/teams/${team.slug}/`, method: 'POST', }); }); afterEach(() => { MockApiClient.clearMockResponses(); TeamStore.reset(); }); it('can request membership', async () => { const {routerProps, routerContext} = initializeOrg({ organization, router: { params: {orgId: organization.slug, teamId: team.slug}, }, }); render(
, {organization, context: routerContext} ); await userEvent.click(screen.getByRole('button', {name: 'Request Access'})); expect(joinMock).toHaveBeenCalled(); expect(screen.queryByTestId('test')).not.toBeInTheDocument(); }); it('displays children', () => { const {routerContext, routerProps} = initializeOrg({ organization, router: { params: {orgId: organization.slug, teamId: teamHasAccess.slug}, }, }); render(
, {organization, context: routerContext} ); expect(screen.getByTestId('test')).toBeInTheDocument(); }); });