accountSettingsLayout.spec.jsx 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import React from 'react';
  2. import {mount} from 'enzyme';
  3. import * as OrgActions from 'app/actionCreators/organizations';
  4. import AccountSettingsLayout from 'app/views/settings/account/accountSettingsLayout';
  5. describe('AccountSettingsLayout', function() {
  6. let wrapper;
  7. let spy;
  8. let api;
  9. const organization = {
  10. id: '44',
  11. name: 'Org Index',
  12. slug: 'org-index',
  13. };
  14. beforeEach(function() {
  15. spy = jest.spyOn(OrgActions, 'fetchOrganizationDetails');
  16. api = MockApiClient.addMockResponse({
  17. url: `/organizations/${organization.slug}/`,
  18. });
  19. wrapper = mount(<AccountSettingsLayout params={{}} />, TestStubs.routerContext());
  20. });
  21. it('fetches org details for SidebarDropdown', function() {
  22. // org from index endpoint, no `access` info
  23. wrapper.setProps({organization});
  24. wrapper.update();
  25. expect(spy).toHaveBeenCalledWith(organization.slug, {
  26. setActive: true,
  27. loadProjects: true,
  28. });
  29. expect(api).toHaveBeenCalledTimes(1);
  30. });
  31. it('does not fetch org details for SidebarDropdown', function() {
  32. // org already has details
  33. wrapper.setProps({organization: TestStubs.Organization()});
  34. wrapper.update();
  35. expect(spy).not.toHaveBeenCalledWith();
  36. expect(api).not.toHaveBeenCalled();
  37. });
  38. });