dashboard_import_ctrl.jest.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import {DashboardImportCtrl} from '../dashboard_import_ctrl';
  2. import config from '../../../core/config';
  3. describe('DashboardImportCtrl', function() {
  4. var ctx: any = {};
  5. let navModelSrv;
  6. let backendSrv;
  7. beforeEach(() => {
  8. navModelSrv = {
  9. getNav: () => {}
  10. };
  11. backendSrv = {
  12. search: jest.fn().mockReturnValue(Promise.resolve([])),
  13. get: jest.fn()
  14. };
  15. ctx.ctrl = new DashboardImportCtrl(backendSrv, navModelSrv, {}, {}, {});
  16. });
  17. describe('when uploading json', function() {
  18. beforeEach(function() {
  19. config.datasources = {
  20. ds: {
  21. type: 'test-db',
  22. }
  23. };
  24. ctx.ctrl.onUpload({
  25. '__inputs': [
  26. {name: 'ds', pluginId: 'test-db', type: 'datasource', pluginName: 'Test DB'}
  27. ]
  28. });
  29. });
  30. it('should build input model', function() {
  31. expect(ctx.ctrl.inputs.length).toBe(1);
  32. expect(ctx.ctrl.inputs[0].name).toBe('ds');
  33. expect(ctx.ctrl.inputs[0].info).toBe('Select a Test DB data source');
  34. });
  35. it('should set inputValid to false', function() {
  36. expect(ctx.ctrl.inputsValid).toBe(false);
  37. });
  38. });
  39. describe('when specifing grafana.com url', function() {
  40. beforeEach(function() {
  41. ctx.ctrl.gnetUrl = 'http://grafana.com/dashboards/123';
  42. // setup api mock
  43. backendSrv.get = jest.fn(() => {
  44. return Promise.resolve({
  45. json: {}
  46. });
  47. });
  48. return ctx.ctrl.checkGnetDashboard();
  49. });
  50. it('should call gnet api with correct dashboard id', function() {
  51. expect(backendSrv.get.mock.calls[0][0]).toBe('api/gnet/dashboards/123');
  52. });
  53. });
  54. describe('when specifing dashbord id', function() {
  55. beforeEach(function() {
  56. ctx.ctrl.gnetUrl = '2342';
  57. // setup api mock
  58. backendSrv.get = jest.fn(() => {
  59. return Promise.resolve({
  60. json: {}
  61. });
  62. });
  63. return ctx.ctrl.checkGnetDashboard();
  64. });
  65. it('should call gnet api with correct dashboard id', function() {
  66. expect(backendSrv.get.mock.calls[0][0]).toBe('api/gnet/dashboards/2342');
  67. });
  68. });
  69. });