linkSrv-specs.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. define([
  2. 'lodash',
  3. 'app/features/dashboard/all',
  4. 'app/features/panellinks/linkSrv'
  5. ], function(_) {
  6. 'use strict';
  7. describe('linkSrv', function() {
  8. var _linkSrv;
  9. beforeEach(module('grafana.core'));
  10. beforeEach(module('grafana.services'));
  11. beforeEach(inject(function(linkSrv) {
  12. _linkSrv = linkSrv;
  13. }));
  14. describe('when appending query strings', function() {
  15. it('add ? to URL if not present', function() {
  16. var url = _linkSrv.appendToQueryString('http://example.com', 'foo=bar');
  17. expect(url).to.be('http://example.com?foo=bar');
  18. });
  19. it('do not add & to URL if ? is present but query string is empty', function() {
  20. var url = _linkSrv.appendToQueryString('http://example.com?', 'foo=bar');
  21. expect(url).to.be('http://example.com?foo=bar');
  22. });
  23. it('add & to URL if query string is present', function() {
  24. var url = _linkSrv.appendToQueryString('http://example.com?foo=bar', 'hello=world');
  25. expect(url).to.be('http://example.com?foo=bar&hello=world');
  26. });
  27. it('do not change the URL if there is nothing to append', function() {
  28. _.each(['', undefined, null], function(toAppend) {
  29. var url1 = _linkSrv.appendToQueryString('http://example.com', toAppend);
  30. expect(url1).to.be('http://example.com');
  31. var url2 = _linkSrv.appendToQueryString('http://example.com?', toAppend);
  32. expect(url2).to.be('http://example.com?');
  33. var url3 = _linkSrv.appendToQueryString('http://example.com?foo=bar', toAppend);
  34. expect(url3).to.be('http://example.com?foo=bar');
  35. });
  36. });
  37. });
  38. });
  39. });