initializeSdk.spec.tsx 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. import {isFilteredRequestErrorEvent} from './initializeSdk';
  2. describe('isFilteredRequestErrorEvent', () => {
  3. it.each(['GET', 'POST', 'PUT', 'DELETE'])('filters 200 %s events', method => {
  4. const requestErrorEvent = {
  5. exception: {
  6. values: [{type: 'RequestError', value: `${method} /dogs/are/great/ 200`}],
  7. },
  8. };
  9. expect(isFilteredRequestErrorEvent(requestErrorEvent)).toBeTruthy();
  10. });
  11. it.each(['GET', 'POST', 'PUT', 'DELETE'])('filters 401 %s events', method => {
  12. const unauthorizedErrorEvent = {
  13. exception: {
  14. values: [{type: 'UnauthorizedError', value: `${method} /dogs/are/great/ 401`}],
  15. },
  16. };
  17. const requestErrorEvent = {
  18. exception: {
  19. values: [{type: 'RequestError', value: `${method} /dogs/are/great/ 401`}],
  20. },
  21. };
  22. expect(isFilteredRequestErrorEvent(unauthorizedErrorEvent)).toBeTruthy();
  23. expect(isFilteredRequestErrorEvent(requestErrorEvent)).toBeTruthy();
  24. });
  25. it.each(['GET', 'POST', 'PUT', 'DELETE'])('filters 403 %s events', method => {
  26. const forbiddenErrorEvent = {
  27. exception: {
  28. values: [{type: 'ForbiddenError', value: `${method} /dogs/are/great/ 403`}],
  29. },
  30. };
  31. const requestErrorEvent = {
  32. exception: {
  33. values: [{type: 'RequestError', value: `${method} /dogs/are/great/ 403`}],
  34. },
  35. };
  36. expect(isFilteredRequestErrorEvent(forbiddenErrorEvent)).toBeTruthy();
  37. expect(isFilteredRequestErrorEvent(requestErrorEvent)).toBeTruthy();
  38. });
  39. it.each(['GET', 'POST', 'PUT', 'DELETE'])('filters 404 %s events', method => {
  40. const notFoundErrorEvent = {
  41. exception: {
  42. values: [{type: 'NotFoundError', value: `${method} /dogs/are/great/ 404`}],
  43. },
  44. };
  45. const requestErrorEvent = {
  46. exception: {
  47. values: [{type: 'RequestError', value: `${method} /dogs/are/great/ 404`}],
  48. },
  49. };
  50. expect(isFilteredRequestErrorEvent(notFoundErrorEvent)).toBeTruthy();
  51. expect(isFilteredRequestErrorEvent(requestErrorEvent)).toBeTruthy();
  52. });
  53. it.each(['GET', 'POST', 'PUT', 'DELETE'])('filters 429 %s events', method => {
  54. const notFoundErrorEvent = {
  55. exception: {
  56. values: [{type: 'TooManyRequestsError', value: `${method} /dogs/are/great/ 429`}],
  57. },
  58. };
  59. const requestErrorEvent = {
  60. exception: {
  61. values: [{type: 'RequestError', value: `${method} /dogs/are/great/ 429`}],
  62. },
  63. };
  64. expect(isFilteredRequestErrorEvent(notFoundErrorEvent)).toBeTruthy();
  65. expect(isFilteredRequestErrorEvent(requestErrorEvent)).toBeTruthy();
  66. });
  67. it.each(['NotFoundError', 'ForbiddenError', 'UnauthorizedError'])(
  68. "doesn't filter other %s events",
  69. errorType => {
  70. const event = {
  71. exception: {
  72. values: [{type: errorType, value: 'Not enough treats!'}],
  73. },
  74. };
  75. expect(isFilteredRequestErrorEvent(event)).toBeFalsy();
  76. }
  77. );
  78. });