FolderSettingsPage.test.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React from 'react';
  2. import { FolderSettingsPage, Props } from './FolderSettingsPage';
  3. import { shallow } from 'enzyme';
  4. import { NavModel } from '@grafana/ui';
  5. const setup = (propOverrides?: object) => {
  6. const props: Props = {
  7. navModel: {} as NavModel,
  8. folderUid: '1234',
  9. folder: {
  10. id: 0,
  11. uid: '1234',
  12. title: 'loading',
  13. canSave: true,
  14. url: 'url',
  15. hasChanged: false,
  16. version: 1,
  17. permissions: [],
  18. },
  19. getFolderByUid: jest.fn(),
  20. setFolderTitle: jest.fn(),
  21. saveFolder: jest.fn(),
  22. deleteFolder: jest.fn(),
  23. };
  24. Object.assign(props, propOverrides);
  25. const wrapper = shallow(<FolderSettingsPage {...props} />);
  26. const instance = wrapper.instance() as FolderSettingsPage;
  27. return {
  28. wrapper,
  29. instance,
  30. };
  31. };
  32. describe('Render', () => {
  33. it('should render component', () => {
  34. const { wrapper } = setup();
  35. expect(wrapper).toMatchSnapshot();
  36. });
  37. it('should enable save button', () => {
  38. const { wrapper } = setup({
  39. folder: {
  40. id: 1,
  41. uid: '1234',
  42. title: 'loading',
  43. canSave: true,
  44. hasChanged: true,
  45. version: 1,
  46. },
  47. });
  48. expect(wrapper).toMatchSnapshot();
  49. });
  50. });