linkSrv-specs.js 1.6 KB

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