queryString.spec.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import utils from 'app/utils/queryString';
  2. describe('getQueryEnvironment()', function() {
  3. it('returns environment name', function() {
  4. const qs = 'is:unresolved is:unassigned environment:production';
  5. expect(utils.getQueryEnvironment(qs)).toBe('production');
  6. });
  7. // empty environment aka. (No environment) has '' as a name
  8. it('returns empty string environment (the empty environment case)', function() {
  9. const qs = 'is:unresolved is:unassigned environment:';
  10. expect(utils.getQueryEnvironment(qs)).toBe('');
  11. });
  12. it('returns null if no environment specified in query', function() {
  13. const qs = 'is:unresolved is:unassigned';
  14. expect(utils.getQueryEnvironment(qs)).toBe(null);
  15. });
  16. it('handles environment with non word characters', function() {
  17. const qs = 'is:unresolved is:unassigned environment:something.com';
  18. expect(utils.getQueryEnvironment(qs)).toBe('something.com');
  19. });
  20. it('handles environment provided with quote marks', function() {
  21. const qs = 'is:unresolved is:unassigned environment:"production"';
  22. expect(utils.getQueryEnvironment(qs)).toBe('production');
  23. });
  24. it('handles environment names with space and quote marks', function() {
  25. const qs = 'is:unresolved is:unassigned environment:"my environment"';
  26. expect(utils.getQueryEnvironment(qs)).toBe('my environment');
  27. });
  28. it('handles query property similar to `environment`', function() {
  29. const qs = 'test_environment:development';
  30. expect(utils.getQueryEnvironment(qs)).toBe(null);
  31. });
  32. });
  33. describe('getQueryStringWithEnvironment', function() {
  34. it('replaces environment in query string', function() {
  35. const qs = 'is:unresolved environment:development is:unassigned';
  36. expect(utils.getQueryStringWithEnvironment(qs, 'staging')).toBe(
  37. 'is:unresolved is:unassigned environment:staging'
  38. );
  39. });
  40. it('handles empty string environment', function() {
  41. const qs = 'is:unresolved environment:development is:unassigned';
  42. expect(utils.getQueryStringWithEnvironment(qs, '')).toBe(
  43. 'is:unresolved is:unassigned environment:'
  44. );
  45. });
  46. it('handles null environment', function() {
  47. const qs = 'is:unresolved environment:development is:unassigned';
  48. expect(utils.getQueryStringWithEnvironment(qs, null)).toBe(
  49. 'is:unresolved is:unassigned'
  50. );
  51. });
  52. it('handles environment with non word characters', function() {
  53. const qs = 'is:unresolved environment:something.com is:unassigned';
  54. expect(utils.getQueryStringWithEnvironment(qs, 'test.com')).toBe(
  55. 'is:unresolved is:unassigned environment:test.com'
  56. );
  57. });
  58. it('handles query property similar to `environment`', function() {
  59. const qs = 'test_environment:development';
  60. expect(utils.getQueryStringWithEnvironment(qs, 'test.com')).toBe(
  61. 'test_environment:development environment:test.com'
  62. );
  63. });
  64. });
  65. describe('getQueryStringWithoutEnvironment', function() {
  66. it('removes environment from querystring', function() {
  67. const qs = 'is:unresolved environment:development is:unassigned';
  68. expect(utils.getQueryStringWithoutEnvironment(qs)).toBe(
  69. 'is:unresolved is:unassigned'
  70. );
  71. });
  72. it('removes empty environment from querystring', function() {
  73. const qs = 'is:unresolved environment: is:unassigned';
  74. expect(utils.getQueryStringWithoutEnvironment(qs)).toBe(
  75. 'is:unresolved is:unassigned'
  76. );
  77. });
  78. it('handles query property similar to `environment`', function() {
  79. const qs = 'test_environment:development';
  80. expect(utils.getQueryStringWithoutEnvironment(qs)).toBe(
  81. 'test_environment:development'
  82. );
  83. });
  84. });
  85. describe('addQueryParamsToExistingUrl', function() {
  86. it('adds new query params to existing query params', function() {
  87. const url = 'https://example.com?value=3';
  88. const newParams = {id: 4};
  89. expect(utils.addQueryParamsToExistingUrl(url, newParams)).toBe(
  90. 'https://example.com/?id=4&value=3'
  91. );
  92. });
  93. it('adds new query params without existing query params', function() {
  94. const url = 'https://example.com';
  95. const newParams = {id: 4};
  96. expect(utils.addQueryParamsToExistingUrl(url, newParams)).toBe(
  97. 'https://example.com/?id=4'
  98. );
  99. });
  100. it('returns empty string no url is passed', function() {
  101. let url;
  102. const newParams = {id: 4};
  103. expect(utils.addQueryParamsToExistingUrl(url, newParams)).toBe('');
  104. });
  105. });