history_srv_specs.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import {describe, beforeEach, it, sinon, expect, angularMocks} from 'test/lib/common';
  2. import helpers from 'test/specs/helpers';
  3. import HistorySrv from '../history/history_srv';
  4. import { versions, compare, restore } from 'test/mocks/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(angularMocks.inject(function($httpBackend) {
  12. ctx.$httpBackend = $httpBackend;
  13. $httpBackend.whenRoute('GET', 'api/dashboards/id/:id/versions').respond(versionsResponse);
  14. $httpBackend.whenRoute('POST', 'api/dashboards/id/:id/restore')
  15. .respond(function(method, url, data, headers, params) {
  16. const parsedData = JSON.parse(data);
  17. return [200, restoreResponse(parsedData.version)];
  18. });
  19. }));
  20. beforeEach(ctx.createService('historySrv'));
  21. describe('getHistoryList', function() {
  22. it('should return a versions array for the given dashboard id', function(done) {
  23. ctx.service.getHistoryList({ id: 1 }).then(function(versions) {
  24. expect(versions).to.eql(versionsResponse);
  25. done();
  26. });
  27. ctx.$httpBackend.flush();
  28. });
  29. it('should return an empty array when not given an id', function(done) {
  30. ctx.service.getHistoryList({ }).then(function(versions) {
  31. expect(versions).to.eql([]);
  32. done();
  33. });
  34. ctx.$httpBackend.flush();
  35. });
  36. it('should return an empty array when not given a dashboard', function(done) {
  37. ctx.service.getHistoryList().then(function(versions) {
  38. expect(versions).to.eql([]);
  39. done();
  40. });
  41. ctx.$httpBackend.flush();
  42. });
  43. });
  44. describe('restoreDashboard', function() {
  45. it('should return a success response given valid parameters', function(done) {
  46. var version = 6;
  47. ctx.service.restoreDashboard({ id: 1 }, version).then(function(response) {
  48. expect(response).to.eql(restoreResponse(version));
  49. done();
  50. });
  51. ctx.$httpBackend.flush();
  52. });
  53. it('should return an empty object when not given an id', function(done) {
  54. ctx.service.restoreDashboard({}, 6).then(function(response) {
  55. expect(response).to.eql({});
  56. done();
  57. });
  58. ctx.$httpBackend.flush();
  59. });
  60. });
  61. });