AnalyticsConfig.test.tsx 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import React from 'react';
  2. import { shallow } from 'enzyme';
  3. import AnalyticsConfig, { Props } from './AnalyticsConfig';
  4. const setup = (propOverrides?: object) => {
  5. const props: Props = {
  6. datasourceConfig: {
  7. id: 21,
  8. orgId: 1,
  9. name: 'Azure Monitor-10-10',
  10. type: 'grafana-azure-monitor-datasource',
  11. typeLogoUrl: '',
  12. access: 'proxy',
  13. url: '',
  14. password: '',
  15. user: '',
  16. database: '',
  17. basicAuth: false,
  18. basicAuthUser: '',
  19. basicAuthPassword: '',
  20. withCredentials: false,
  21. isDefault: false,
  22. jsonData: {
  23. azureLogAnalyticsSameAs: false,
  24. },
  25. secureJsonFields: {
  26. logAnalyticsClientSecret: false,
  27. },
  28. editorJsonData: {
  29. logAnalyticsDefaultWorkspace: '',
  30. logAnalyticsClientSecret: '',
  31. logAnalyticsTenantId: '',
  32. },
  33. editorSecureJsonData: {
  34. logAnalyticsClientSecret: '',
  35. },
  36. version: 1,
  37. readOnly: false,
  38. },
  39. logAnalyticsSubscriptions: [],
  40. logAnalyticsWorkspaces: [],
  41. onDatasourceUpdate: jest.fn(),
  42. onLoadSubscriptions: jest.fn(),
  43. onLoadWorkspaces: jest.fn(),
  44. };
  45. Object.assign(props, propOverrides);
  46. return shallow(<AnalyticsConfig {...props} />);
  47. };
  48. describe('Render', () => {
  49. it('should render component', () => {
  50. const wrapper = setup();
  51. expect(wrapper).toMatchSnapshot();
  52. });
  53. it('should disable log analytics credentials form', () => {
  54. const wrapper = setup({
  55. jsonData: {
  56. azureLogAnalyticsSameAs: true,
  57. },
  58. });
  59. expect(wrapper).toMatchSnapshot();
  60. });
  61. it('should enable azure log analytics load workspaces button', () => {
  62. const wrapper = setup({
  63. editorJsonData: {
  64. logAnalyticsDefaultWorkspace: '',
  65. logAnalyticsTenantId: 'e7f3f661-a933-4b3f-8176-51c4f982ec48',
  66. logAnalyticsClientId: '44693801-6ee6-49de-9b2d-9106972f9572',
  67. logAnalyticsSubscriptionId: 'e3fe4fde-ad5e-4d60-9974-e2f3562ffdf2',
  68. logAnalyticsClientSecret: 'cddcc020-2c94-460a-a3d0-df3147ffa792',
  69. },
  70. });
  71. expect(wrapper).toMatchSnapshot();
  72. });
  73. });