history_srv_specs.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import { describe, beforeEach, it, expect, angularMocks } from 'test/lib/common';
  2. import helpers from 'test/specs/helpers';
  3. import '../history/history_srv';
  4. import { versions, restore } from './history_mocks';
  5. describe('historySrv', function() {
  6. var ctx = new helpers.ServiceTestContext();
  7. var versionsResponse = versions();
  8. var restoreResponse = restore;
  9. beforeEach(angularMocks.module('grafana.core'));
  10. beforeEach(angularMocks.module('grafana.services'));
  11. beforeEach(
  12. angularMocks.inject(function($httpBackend) {
  13. ctx.$httpBackend = $httpBackend;
  14. $httpBackend.whenRoute('GET', 'api/dashboards/id/:id/versions').respond(versionsResponse);
  15. $httpBackend
  16. .whenRoute('POST', 'api/dashboards/id/:id/restore')
  17. .respond(function(method, url, data, headers, params) {
  18. const parsedData = JSON.parse(data);
  19. return [200, restoreResponse(parsedData.version)];
  20. });
  21. })
  22. );
  23. beforeEach(ctx.createService('historySrv'));
  24. function wrapPromise(ctx, angularPromise) {
  25. return new Promise((resolve, reject) => {
  26. angularPromise.then(resolve, reject);
  27. ctx.$httpBackend.flush();
  28. });
  29. }
  30. describe('getHistoryList', function() {
  31. it('should return a versions array for the given dashboard id', function() {
  32. return wrapPromise(
  33. ctx,
  34. ctx.service.getHistoryList({ id: 1 }).then(function(versions) {
  35. expect(versions).to.eql(versionsResponse);
  36. })
  37. );
  38. });
  39. it('should return an empty array when not given an id', function() {
  40. return wrapPromise(
  41. ctx,
  42. ctx.service.getHistoryList({}).then(function(versions) {
  43. expect(versions).to.eql([]);
  44. })
  45. );
  46. });
  47. it('should return an empty array when not given a dashboard', function() {
  48. return wrapPromise(
  49. ctx,
  50. ctx.service.getHistoryList().then(function(versions) {
  51. expect(versions).to.eql([]);
  52. })
  53. );
  54. });
  55. });
  56. describe('restoreDashboard', function() {
  57. it('should return a success response given valid parameters', function() {
  58. let version = 6;
  59. return wrapPromise(
  60. ctx,
  61. ctx.service.restoreDashboard({ id: 1 }, version).then(function(response) {
  62. expect(response).to.eql(restoreResponse(version));
  63. })
  64. );
  65. });
  66. it('should return an empty object when not given an id', function() {
  67. return wrapPromise(
  68. ctx,
  69. ctx.service.restoreDashboard({}, 6).then(function(response) {
  70. expect(response).to.eql({});
  71. })
  72. );
  73. });
  74. });
  75. });