utils.spec.tsx 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import {geKnownData, getUnknownData} from 'sentry/components/events/contexts/utils';
  2. describe('contexts utils', function () {
  3. describe('getUnknownData', function () {
  4. it('filters out unknown data and transforms into the right way', function () {
  5. const allData = {
  6. id: 1,
  7. email: 'a@a.com',
  8. username: 'a',
  9. count: 1000,
  10. type: 'type',
  11. title: 'title',
  12. };
  13. const knownKeys = ['id', 'email'];
  14. const unknownData = getUnknownData({allData, knownKeys});
  15. expect(unknownData).toEqual([
  16. {key: 'username', value: 'a', subject: 'Username', meta: undefined},
  17. {key: 'count', value: 1000, subject: 'Count', meta: undefined},
  18. ]);
  19. });
  20. });
  21. describe('getKknownData', function () {
  22. it('filters out known data and transforms into the right way', function () {
  23. const data = {
  24. device_app_hash: '2421fae1ac9237a8131e74883e52b0f7034a143f',
  25. build_type: 0,
  26. app_identifier: 'io.sentry.sample.iOS-Swift',
  27. app_name: '',
  28. app_version: '7.1.3',
  29. app_build: '1',
  30. app_id: '3145EA1A-0EAE-3F8C-969A-13A01394D3EA',
  31. type: 'app',
  32. };
  33. const knownDataTypes = ['device_app_hash', 'build_type', 'app_name'];
  34. const knownData = geKnownData({
  35. data,
  36. knownDataTypes,
  37. onGetKnownDataDetails: v => {
  38. if (v.type === 'device_app_hash') {
  39. return {
  40. subject: 'Device App Hash',
  41. value: v.data.device_app_hash,
  42. };
  43. }
  44. if (v.type === 'app_name') {
  45. return {
  46. subject: 'App Name',
  47. value: v.data.app_name,
  48. };
  49. }
  50. if (v.type === 'build_type') {
  51. return {
  52. subject: 'Build Type',
  53. value: v.data.build_type,
  54. };
  55. }
  56. return undefined;
  57. },
  58. });
  59. expect(knownData).toEqual([
  60. {
  61. key: 'device_app_hash',
  62. value: expect.anything(),
  63. subject: 'Device App Hash',
  64. meta: undefined,
  65. },
  66. {
  67. key: 'build_type',
  68. value: expect.anything(),
  69. subject: 'Build Type',
  70. meta: undefined,
  71. },
  72. ]);
  73. });
  74. it('does not format the value when displaying raw', function () {
  75. const data = {device_app_hash: 'abc'};
  76. const knownDataTypes = ['device_app_hash'];
  77. const knownData = geKnownData({
  78. data,
  79. knownDataTypes,
  80. raw: true,
  81. onGetKnownDataDetails: v => {
  82. if (v.type === 'device_app_hash') {
  83. return {
  84. subject: 'Device App Hash',
  85. value: v.data.device_app_hash,
  86. };
  87. }
  88. return undefined;
  89. },
  90. });
  91. expect(knownData).toEqual([
  92. {
  93. key: 'device_app_hash',
  94. value: 'abc',
  95. subject: 'Device App Hash',
  96. meta: undefined,
  97. },
  98. ]);
  99. });
  100. });
  101. });