index.spec.tsx 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import {Organization} from 'sentry-fixture/organization';
  2. import RouterContextFixture from 'sentry-fixture/routerContextFixture';
  3. import {render, screen} from 'sentry-test/reactTestingLibrary';
  4. import ProjectsStore from 'sentry/stores/projectsStore';
  5. import TeamInsightsContainer from 'sentry/views/organizationStats/teamInsights';
  6. describe('TeamInsightsContainer', () => {
  7. afterEach(() => {
  8. ProjectsStore.reset();
  9. });
  10. it('blocks access if org is missing flag', () => {
  11. const organization = Organization();
  12. const context = RouterContextFixture([{organization}]);
  13. render(
  14. <TeamInsightsContainer organization={organization}>
  15. <div>test</div>
  16. </TeamInsightsContainer>,
  17. {context}
  18. );
  19. expect(screen.queryByText('test')).not.toBeInTheDocument();
  20. });
  21. it('allows access for orgs with flag', () => {
  22. ProjectsStore.loadInitialData([TestStubs.Project()]);
  23. const organization = Organization({features: ['team-insights']});
  24. const context = RouterContextFixture([{organization}]);
  25. render(
  26. <TeamInsightsContainer organization={organization}>
  27. <div>test</div>
  28. </TeamInsightsContainer>,
  29. {context}
  30. );
  31. expect(screen.getByText('test')).toBeInTheDocument();
  32. });
  33. it('shows message for users with no teams', () => {
  34. ProjectsStore.loadInitialData([]);
  35. const organization = Organization({features: ['team-insights']});
  36. const context = RouterContextFixture([{organization}]);
  37. render(<TeamInsightsContainer organization={organization} />, {context});
  38. expect(
  39. screen.getByText('You need at least one project to use this view')
  40. ).toBeInTheDocument();
  41. });
  42. });