AddPermissions.jest.tsx 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import React from 'react';
  2. import AddPermissions from './AddPermissions';
  3. import { RootStore } from 'app/stores/RootStore/RootStore';
  4. import { backendSrv } from 'test/mocks/common';
  5. import { shallow } from 'enzyme';
  6. describe('AddPermissions', () => {
  7. let wrapper;
  8. let store;
  9. let instance;
  10. beforeAll(() => {
  11. backendSrv.get.mockReturnValue(
  12. Promise.resolve([
  13. { id: 2, dashboardId: 1, role: 'Viewer', permission: 1, permissionName: 'View' },
  14. { id: 3, dashboardId: 1, role: 'Editor', permission: 1, permissionName: 'Edit' },
  15. ])
  16. );
  17. backendSrv.post = jest.fn();
  18. store = RootStore.create(
  19. {},
  20. {
  21. backendSrv: backendSrv,
  22. }
  23. );
  24. wrapper = shallow(<AddPermissions permissions={store.permissions} backendSrv={backendSrv} />);
  25. instance = wrapper.instance();
  26. return store.permissions.load(1, true, false);
  27. });
  28. describe('when permission for a user is added', () => {
  29. it('should save permission to db', () => {
  30. const evt = {
  31. target: {
  32. value: 'User',
  33. },
  34. };
  35. const userItem = {
  36. id: 2,
  37. login: 'user2',
  38. };
  39. instance.typeChanged(evt);
  40. instance.userPicked(userItem);
  41. wrapper.update();
  42. expect(wrapper.find('[data-save-permission]').prop('disabled')).toBe(false);
  43. wrapper.find('form').simulate('submit', { preventDefault() {} });
  44. expect(backendSrv.post.mock.calls.length).toBe(1);
  45. expect(backendSrv.post.mock.calls[0][0]).toBe('/api/dashboards/id/1/acl');
  46. });
  47. });
  48. describe('when permission for team is added', () => {
  49. it('should save permission to db', () => {
  50. const evt = {
  51. target: {
  52. value: 'Group',
  53. },
  54. };
  55. const teamItem = {
  56. id: 2,
  57. name: 'ug1',
  58. };
  59. instance.typeChanged(evt);
  60. instance.teamPicked(teamItem);
  61. wrapper.update();
  62. expect(wrapper.find('[data-save-permission]').prop('disabled')).toBe(false);
  63. wrapper.find('form').simulate('submit', { preventDefault() {} });
  64. expect(backendSrv.post.mock.calls.length).toBe(1);
  65. expect(backendSrv.post.mock.calls[0][0]).toBe('/api/dashboards/id/1/acl');
  66. });
  67. });
  68. afterEach(() => {
  69. backendSrv.post.mockClear();
  70. });
  71. });