Skip to content

Commit 690c484

Browse files
authored
fix(base64): update b64decode to use 'utf-8' encoding and add base64toBuffer utility function (#394)
- Changed b64decode function to decode base64 strings using 'utf-8' instead of 'binary'.
1 parent 046eac0 commit 690c484

File tree

3 files changed

+56
-2
lines changed

3 files changed

+56
-2
lines changed

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v16.20.2

workers/sentry/src/utils/base64.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* @param str - base64 string
55
*/
66
export function b64decode(str: string): string {
7-
return Buffer.from(str, 'base64').toString('binary');
7+
return Buffer.from(str, 'base64').toString('utf-8');
88
}
99

1010
/**
@@ -15,3 +15,12 @@ export function b64decode(str: string): string {
1515
export function b64encode(str: string): string {
1616
return Buffer.from(str).toString('base64');
1717
}
18+
19+
/**
20+
* Decode base64 string to buffer
21+
*
22+
* @param str - base64 string
23+
*/
24+
export function base64toBuffer(str: string): Buffer {
25+
return Buffer.from(str, 'base64');
26+
}

workers/sentry/tests/index.test.ts

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import SentryEventWorker from '../src';
22
import '../../../env-test';
33
import { mockedAmqpChannel } from '../../../jest.setup.js';
44
import { EventEnvelope, serializeEnvelope, SeverityLevel } from '@sentry/core';
5-
import { b64encode } from '../src/utils/base64';
5+
import { b64encode, base64toBuffer } from '../src/utils/base64';
66
import { EventWorkerTask } from '../../../lib/types/event-worker-task';
77
import { SentryEventWorkerTask } from '../types/sentry-event-worker-task';
88

@@ -685,4 +685,48 @@ describe('SentryEventWorker', () => {
685685
});
686686
});
687687
});
688+
689+
describe('envelope parsing', () => {
690+
const event = {
691+
"projectId": "67ed371b4196dcbd73537c64",
692+
"payload": {
693+
"envelope": "eyJldmVudF9pZCI6IjRiNjE0MGZiOTc1MDQ5NDU5MDhmZTUyYzViMGRkMTIzIiwic2RrIjp7Im5hbWUiOiJzZW50cnkuamF2YS5hbmRyb2lkIiwidmVyc2lvbiI6IjguNi4wIiwicGFja2FnZXMiOlt7Im5hbWUiOiJtYXZlbjppby5zZW50cnk6c2VudHJ5IiwidmVyc2lvbiI6IjguNi4wIn0seyJuYW1lIjoibWF2ZW46aW8uc2VudHJ5OnNlbnRyeS1hbmRyb2lkLWNvcmUiLCJ2ZXJzaW9uIjoiOC42LjAifSx7Im5hbWUiOiJtYXZlbjppby5zZW50cnk6c2VudHJ5LWFuZHJvaWQtcmVwbGF5IiwidmVyc2lvbiI6IjguNi4wIn0seyJuYW1lIjoibWF2ZW46aW8uc2VudHJ5OnNlbnRyeS1jb21wb3NlIiwidmVyc2lvbiI6IjguNi4wIn0seyJuYW1lIjoibWF2ZW46aW8uc2VudHJ5OnNlbnRyeS1hbmRyb2lkLW5kayIsInZlcnNpb24iOiI4LjYuMCJ9XSwiaW50ZWdyYXRpb25zIjpbIkFwcFN0YXJ0SW5zdHJ1bWVudGF0aW9uIiwiQ29tcG9zZUluc3RydW1lbnRhdGlvbiIsIkRhdGFiYXNlSW5zdHJ1bWVudGF0aW9uIiwiRmlsZUlPSW5zdHJ1bWVudGF0aW9uIiwiTG9nY2F0SW5zdHJ1bWVudGF0aW9uIiwiVW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyIiwiU2h1dGRvd25Ib29rIiwiU2VuZENhY2hlZEVudmVsb3BlIiwiTmRrIiwiQXBwTGlmZWN5Y2xlIiwiQW5yVjIiLCJBcHBDb21wb25lbnRzQnJlYWRjcnVtYnMiLCJFbnZlbG9wZUZpbGVPYnNlcnZlciIsIlN5c3RlbUV2ZW50c0JyZWFkY3J1bWJzIl19LCJ0cmFjZSI6eyJ0cmFjZV9pZCI6IjM5YjFmYTQ0ZTFkNTQ1MWU5NmFiYTEwNjFhNTY2OTJmIiwicHVibGljX2tleSI6Ijc3ZThjYTBkMzllMzQ5NWZhN2UzNjBkOTYwYjc2ZTVmNzg5Mzc3ZjFmYTJiNGZlMmJmZmI2ODY0OTU5M2ExMjMiLCJyZWxlYXNlIjoiY29tLmV4YW1wbGUubXlhcHBsaWNhdGlvbkAxLjArMSIsImVudmlyb25tZW50IjoicHJvZHVjdGlvbiIsInNhbXBsZV9yYW5kIjoiMC4zNTY0MTc5MDcyOTI0NjMifSwic2VudF9hdCI6IjIwMjUtMDQtMDNUMTM6Mjc6MjcuMzQ4WiJ9CnsiY29udGVudF90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsInR5cGUiOiJldmVudCIsImxlbmd0aCI6ODQwM30KeyJ0aW1lc3RhbXAiOiIyMDI1LTA0LTAzVDEzOjE2OjM4LjQzMFoiLCJleGNlcHRpb24iOnsidmFsdWVzIjpbeyJ0eXBlIjoiRXhjZXB0aW9uIiwidmFsdWUiOiLQotC10YHRgtC+0LLQsNGPINC+0YjQuNCx0LrQsCAjMjg3IiwibW9kdWxlIjoiamF2YS5sYW5nIiwidGhyZWFkX2lkIjoyLCJzdGFja3RyYWNlIjp7ImZyYW1lcyI6W3siZmlsZW5hbWUiOiJaeWdvdGVJbml0LmphdmEiLCJmdW5jdGlvbiI6Im1haW4iLCJtb2R1bGUiOiJjb20uYW5kcm9pZC5pbnRlcm5hbC5vcy5aeWdvdGVJbml0IiwibGluZW5vIjo5MzIsIm5hdGl2ZSI6ZmFsc2V9LHsiZmlsZW5hbWUiOiJSdW50aW1lSW5pdC5qYXZhIiwiZnVuY3Rpb24iOiJydW4iLCJtb2R1bGUiOiJjb20uYW5kcm9pZC5pbnRlcm5hbC5vcy5SdW50aW1lSW5pdCRNZXRob2RBbmRBcmdzQ2FsbGVyIiwibGluZW5vIjo1OTMsIm5hdGl2ZSI6ZmFsc2V9LHsiZmlsZW5hbWUiOiJNZXRob2QuamF2YSIsImZ1bmN0aW9uIjoiaW52b2tlIiwibW9kdWxlIjoiamF2YS5sYW5nLnJlZmxlY3QuTWV0aG9kIiwibmF0aXZlIjp0cnVlfSx7ImZpbGVuYW1lIjoiQWN0aXZpdHlUaHJlYWQuamF2YSIsImZ1bmN0aW9uIjoibWFpbiIsIm1vZHVsZSI6ImFuZHJvaWQuYXBwLkFjdGl2aXR5VGhyZWFkIiwibGluZW5vIjo4OTgyLCJuYXRpdmUiOmZhbHNlfSx7ImZpbGVuYW1lIjoiTG9vcGVyLmphdmEiLCJmdW5jdGlvbiI6Imxvb3AiLCJtb2R1bGUiOiJhbmRyb2lkLm9zLkxvb3BlciIsImxpbmVubyI6MzM4LCJuYXRpdmUiOmZhbHNlfSx7ImZpbGVuYW1lIjoiTG9vcGVyLmphdmEiLCJmdW5jdGlvbiI6Imxvb3BPbmNlIiwibW9kdWxlIjoiYW5kcm9pZC5vcy5Mb29wZXIiLCJsaW5lbm8iOjI0OCwibmF0aXZlIjpmYWxzZX0seyJmaWxlbmFtZSI6IkhhbmRsZXIuamF2YSIsImZ1bmN0aW9uIjoiZGlzcGF0Y2hNZXNzYWdlIiwibW9kdWxlIjoiYW5kcm9pZC5vcy5IYW5kbGVyIiwibGluZW5vIjoxMDMsIm5hdGl2ZSI6ZmFsc2V9LHsiZmlsZW5hbWUiOiJIYW5kbGVyLmphdmEiLCJmdW5jdGlvbiI6ImhhbmRsZUNhbGxiYWNrIiwibW9kdWxlIjoiYW5kcm9pZC5vcy5IYW5kbGVyIiwibGluZW5vIjo5OTUsIm5hdGl2ZSI6ZmFsc2V9LHsiZmlsZW5hbWUiOiJSdW5uYWJsZS5rdCIsImZ1bmN0aW9uIjoicnVuIiwibW9kdWxlIjoia290bGlueC5jb3JvdXRpbmVzLmFuZHJvaWQuSGFuZGxlckNvbnRleHQkc2NoZWR1bGVSZXN1bWVBZnRlckRlbGF5JCRpbmxpbmVkJFJ1bm5hYmxlJDEiLCJsaW5lbm8iOjE5LCJuYXRpdmUiOmZhbHNlfSx7ImZpbGVuYW1lIjoiQ2FuY2VsbGFibGVDb250aW51YXRpb25JbXBsLmt0IiwiZnVuY3Rpb24iOiJyZXN1bWVVbmRpc3BhdGNoZWQiLCJtb2R1bGUiOiJrb3RsaW54LmNvcm91dGluZXMuQ2FuY2VsbGFibGVDb250aW51YXRpb25JbXBsIiwibGluZW5vIjo1OTUsIm5hdGl2ZSI6ZmFsc2V9LHsiZmlsZW5hbWUiOiJDYW5jZWxsYWJsZUNvbnRpbnVhdGlvbkltcGwua3QiLCJmdW5jdGlvbiI6InJlc3VtZUltcGwkZGVmYXVsdCIsIm1vZHVsZSI6ImtvdGxpbnguY29yb3V0aW5lcy5DYW5jZWxsYWJsZUNvbnRpbnVhdGlvbkltcGwiLCJsaW5lbm8iOjQ5NywibmF0aXZlIjpmYWxzZX0seyJmaWxlbmFtZSI6IkNhbmNlbGxhYmxlQ29udGludWF0aW9uSW1wbC5rdCIsImZ1bmN0aW9uIjoicmVzdW1lSW1wbCIsIm1vZHVsZSI6ImtvdGxpbnguY29yb3V0aW5lcy5DYW5jZWxsYWJsZUNvbnRpbnVhdGlvbkltcGwiLCJsaW5lbm8iOjUwOCwibmF0aXZlIjpmYWxzZX0seyJmaWxlbmFtZSI6IkNhbmNlbGxhYmxlQ29udGludWF0aW9uSW1wbC5rdCIsImZ1bmN0aW9uIjoiZGlzcGF0Y2hSZXN1bWUiLCJtb2R1bGUiOiJrb3RsaW54LmNvcm91dGluZXMuQ2FuY2VsbGFibGVDb250aW51YXRpb25JbXBsIiwibGluZW5vIjo0NzQsIm5hdGl2ZSI6ZmFsc2V9LHsiZmlsZW5hbWUiOiJEaXNwYXRjaGVkVGFzay5rdCIsImZ1bmN0aW9uIjoiZGlzcGF0Y2giLCJtb2R1bGUiOiJrb3RsaW54LmNvcm91dGluZXMuRGlzcGF0Y2hlZFRhc2tLdCIsImxpbmVubyI6MTY4LCJuYXRpdmUiOmZhbHNlfSx7ImZpbGVuYW1lIjoiRGlzcGF0Y2hlZFRhc2sua3QiLCJmdW5jdGlvbiI6InJlc3VtZSIsIm1vZHVsZSI6ImtvdGxpbnguY29yb3V0aW5lcy5EaXNwYXRjaGVkVGFza0t0IiwibGluZW5vIjoyMzUsIm5hdGl2ZSI6ZmFsc2V9LHsiZmlsZW5hbWUiOiJDb250aW51YXRpb25JbXBsLmt0IiwiZnVuY3Rpb24iOiJyZXN1bWVXaXRoIiwibW9kdWxlIjoia290bGluLmNvcm91dGluZXMuanZtLmludGVybmFsLkJhc2VDb250aW51YXRpb25JbXBsIiwibGluZW5vIjozMywibmF0aXZlIjpmYWxzZX0seyJmaWxlbmFtZSI6Ik1haW5BY3Rpdml0eS5rdCIsImZ1bmN0aW9uIjoiaW52b2tlU3VzcGVuZCIsIm1vZHVsZSI6ImNvbS5leGFtcGxlLm15YXBwbGljYXRpb24uTWFpbkFjdGl2aXR5JG9uQ3JlYXRlJDIiLCJsaW5lbm8iOjM4LCJpbl9hcHAiOnRydWUsIm5hdGl2ZSI6ZmFsc2V9XX0sIm1lY2hhbmlzbSI6eyJ0eXBlIjoiY2hhaW5lZCIsImV4Y2VwdGlvbl9pZCI6MH19XX0sImZpbmdlcnByaW50IjpbXSwibW9kdWxlcyI6eyJhbmRyb2lkeC5hcmNoLmNvcmU6Y29yZS1ydW50aW1lIjoiMi4yLjAiLCJhbmRyb2lkeC5jb3JlOmNvcmUta3R4IjoiMS4xMy4xIiwib3JnLmpldGJyYWlucy5rb3RsaW46a290bGluLXN0ZGxpYi1qZGs3IjoiMS45LjI0Iiwib3JnLmpldGJyYWlucy5rb3RsaW46a290bGluLXN0ZGxpYi1qZGs4IjoiMS45LjI0IiwiYW5kcm9pZHguY29uY3VycmVudDpjb25jdXJyZW50LWZ1dHVyZXMiOiIxLjEuMCIsImFuZHJvaWR4LmNvbXBvc2UudWk6dWktYW5kcm9pZCI6IjEuNy4wIiwiYW5kcm9pZHgubGlmZWN5Y2xlOmxpZmVjeWNsZS1ydW50aW1lLWFuZHJvaWQiOiIyLjguMyIsImFuZHJvaWR4LmNvbXBvc2UudWk6dWktdXRpbC1hbmRyb2lkIjoiMS43LjAiLCJhbmRyb2lkeC5jb21wb3NlLnVpOnVpLXRvb2xpbmctYW5kcm9pZCI6IjEuNy4wIiwiYW5kcm9pZHguY29tcG9zZS51aTp1aS10b29saW5nLWRhdGEtYW5kcm9pZCI6IjEuNy4wIiwiYW5kcm9pZHguc3RhcnR1cDpzdGFydHVwLXJ1bnRpbWUiOiIxLjEuMSIsImFuZHJvaWR4LmxpZmVjeWNsZTpsaWZlY3ljbGUtdmlld21vZGVsLWFuZHJvaWQiOiIyLjguMyIsImFuZHJvaWR4LmxpZmVjeWNsZTpsaWZlY3ljbGUtdmlld21vZGVsLWt0eCI6IjIuOC4zIiwib3JnLmpldGJyYWlucy5rb3RsaW46a290bGluLXN0ZGxpYiI6IjIuMC4yMSIsImFuZHJvaWR4LmNvbXBvc2UudWk6dWktdGV4dC1hbmRyb2lkIjoiMS43LjAiLCJjb20uZ29vZ2xlLmd1YXZhOmxpc3RlbmFibGVmdXR1cmUiOiIxLjAiLCJhbmRyb2lkeC5saWZlY3ljbGU6bGlmZWN5Y2xlLXByb2Nlc3MiOiIyLjguMyIsImlvLnNlbnRyeTpzZW50cnktY29tcG9zZS1hbmRyb2lkIjoiOC42LjAiLCJhbmRyb2lkeC5hY3Rpdml0eTphY3Rpdml0eS1jb21wb3NlIjoiMS44LjIiLCJhbmRyb2lkeC5jb21wb3NlLnVpOnVpLWdlb21ldHJ5LWFuZHJvaWQiOiIxLjcuMCIsImlvLnNlbnRyeTpzZW50cnktYW5kcm9pZC1yZXBsYXkiOiI4LjYuMCIsImFuZHJvaWR4LmNvbXBvc2UuYW5pbWF0aW9uOmFuaW1hdGlvbi1hbmRyb2lkIjoiMS43LjAiLCJhbmRyb2lkeC5jb21wb3NlLmZvdW5kYXRpb246Zm91bmRhdGlvbi1hbmRyb2lkIjoiMS43LjAiLCJpby5zZW50cnk6c2VudHJ5LW5hdGl2ZS1uZGsiOiIwLjguMyIsImFuZHJvaWR4LmFjdGl2aXR5OmFjdGl2aXR5LWt0eCI6IjEuOC4yIiwiYW5kcm9pZHgubGlmZWN5Y2xlOmxpZmVjeWNsZS1ydW50aW1lLWNvbXBvc2UtYW5kcm9pZCI6IjIuOC4zIiwib3JnLmpldGJyYWlucy5rb3RsaW54OmtvdGxpbngtY29yb3V0aW5lcy1jb3JlLWp2bSI6IjEuNy4zIiwiaW8uc2VudHJ5OnNlbnRyeS1hbmRyb2lkLWNvcmUiOiI4LjYuMCIsImFuZHJvaWR4LmNvbXBvc2UudWk6dWktZ3JhcGhpY3MtYW5kcm9pZCI6IjEuNy4wIiwiYW5kcm9pZHguYWN0aXZpdHk6YWN0aXZpdHkiOiIxLjguMiIsImFuZHJvaWR4LmNvbXBvc2UucnVudGltZTpydW50aW1lLWFuZHJvaWQiOiIxLjcuMCIsImFuZHJvaWR4LmNvbXBvc2UudWk6dWktdGVzdC1tYW5pZmVzdCI6IjEuNy4wIiwiYW5kcm9pZHguZW1vamkyOmVtb2ppMiI6IjEuMy4wIiwiYW5kcm9pZHgubGlmZWN5Y2xlOmxpZmVjeWNsZS12aWV3bW9kZWwtc2F2ZWRzdGF0ZSI6IjIuOC4zIiwiYW5kcm9pZHguZ3JhcGhpY3M6Z3JhcGhpY3MtcGF0aCI6IjEuMC4xIiwiYW5kcm9pZHguY29tcG9zZS5tYXRlcmlhbDM6bWF0ZXJpYWwzLWFuZHJvaWQiOiIxLjMuMCIsImFuZHJvaWR4LmFubm90YXRpb246YW5ub3RhdGlvbi1leHBlcmltZW50YWwiOiIxLjQuMCIsImFuZHJvaWR4LnNhdmVkc3RhdGU6c2F2ZWRzdGF0ZS1rdHgiOiIxLjIuMSIsImFuZHJvaWR4LmNvbGxlY3Rpb246Y29sbGVjdGlvbi1qdm0iOiIxLjQuMCIsImlvLnNlbnRyeTpzZW50cnkta290bGluLWV4dGVuc2lvbnMiOiI4LjYuMCIsIm9yZy5qZXRicmFpbnMua290bGlueDprb3RsaW54LWNvcm91dGluZXMtYW5kcm9pZCI6IjEuNy4zIiwiYW5kcm9pZHguY29tcG9zZS5ydW50aW1lOnJ1bnRpbWUtc2F2ZWFibGUtYW5kcm9pZCI6IjEuNy4wIiwiYW5kcm9pZHguY29tcG9zZS5tYXRlcmlhbDptYXRlcmlhbC1hbmRyb2lkIjoiMS43LjAiLCJhbmRyb2lkeC5zYXZlZHN0YXRlOnNhdmVkc3RhdGUiOiIxLjIuMSIsImFuZHJvaWR4LmNvbXBvc2UudWk6dWktdW5pdC1hbmRyb2lkIjoiMS43LjAiLCJhbmRyb2lkeC5jb3JlOmNvcmUiOiIxLjEzLjEiLCJhbmRyb2lkeC5jb2xsZWN0aW9uOmNvbGxlY3Rpb24ta3R4IjoiMS40LjAiLCJhbmRyb2lkeC5jb21wb3NlLm1hdGVyaWFsOm1hdGVyaWFsLWljb25zLWNvcmUtYW5kcm9pZCI6IjEuNy4wIiwiaW8uc2VudHJ5OnNlbnRyeS1hbmRyb2lkIjoiOC42LjAiLCJhbmRyb2lkeC5saWZlY3ljbGU6bGlmZWN5Y2xlLXJ1bnRpbWUta3R4LWFuZHJvaWQiOiIyLjguMyIsImlvLnNlbnRyeTpzZW50cnktYW5kcm9pZC1uZGsiOiI4LjYuMCIsImFuZHJvaWR4LmFyY2guY29yZTpjb3JlLWNvbW1vbiI6IjIuMi4wIiwiYW5kcm9pZHguY29tcG9zZS5hbmltYXRpb246YW5pbWF0aW9uLWNvcmUtYW5kcm9pZCI6IjEuNy4wIiwiYW5kcm9pZHgubGlmZWN5Y2xlOmxpZmVjeWNsZS1jb21tb24tamF2YTgiOiIyLjguMyIsImFuZHJvaWR4LmN1c3RvbXZpZXc6Y3VzdG9tdmlldy1wb29saW5nY29udGFpbmVyIjoiMS4wLjAiLCJvcmcuamV0YnJhaW5zOmFubm90YXRpb25zIjoiMjMuMC4wIiwiYW5kcm9pZHgubGlmZWN5Y2xlOmxpZmVjeWNsZS1jb21tb24tanZtIjoiMi44LjMiLCJpby5zZW50cnk6c2VudHJ5LWFuZHJvaWQtbmF2aWdhdGlvbiI6IjguNi4wIiwiYW5kcm9pZHguY29tcG9zZS5tYXRlcmlhbDptYXRlcmlhbC1yaXBwbGUtYW5kcm9pZCI6IjEuNy4wIiwiYW5kcm9pZHgubGlmZWN5Y2xlOmxpZmVjeWNsZS1saXZlZGF0YS1jb3JlIjoiMi44LjMiLCJpby5zZW50cnk6c2VudHJ5IjoiOC42LjAiLCJhbmRyb2lkeC5wcm9maWxlaW5zdGFsbGVyOnByb2ZpbGVpbnN0YWxsZXIiOiIxLjMuMSIsImFuZHJvaWR4LmF1dG9maWxsOmF1dG9maWxsIjoiMS4wLjAiLCJhbmRyb2lkeC5pbnRlcnBvbGF0b3I6aW50ZXJwb2xhdG9yIjoiMS4wLjAiLCJhbmRyb2lkeC50cmFjaW5nOnRyYWNpbmciOiIxLjAuMCIsImFuZHJvaWR4LmFubm90YXRpb246YW5ub3RhdGlvbi1qdm0iOiIxLjguMCIsImFuZHJvaWR4LnZlcnNpb25lZHBhcmNlbGFibGU6dmVyc2lvbmVkcGFyY2VsYWJsZSI6IjEuMS4xIiwiYW5kcm9pZHguY29tcG9zZS5mb3VuZGF0aW9uOmZvdW5kYXRpb24tbGF5b3V0LWFuZHJvaWQiOiIxLjcuMCIsImFuZHJvaWR4LmNvbXBvc2UudWk6dWktdG9vbGluZy1wcmV2aWV3LWFuZHJvaWQiOiIxLjcuMCJ9LCJldmVudF9pZCI6IjRiNjE0MGZiOTc1MDQ5NDU5MDhmZTUyYzViMGRkMTIzIiwiY29udGV4dHMiOnsiYXBwIjp7ImFwcF9pZGVudGlmaWVyIjoiY29tLmV4YW1wbGUubXlhcHBsaWNhdGlvbiIsImFwcF9uYW1lIjoiTXkgQXBwbGljYXRpb24iLCJhcHBfdmVyc2lvbiI6IjEuMCIsImFwcF9idWlsZCI6IjEiLCJwZXJtaXNzaW9ucyI6eyJEWU5BTUlDX1JFQ0VJVkVSX05PVF9FWFBPUlRFRF9QRVJNSVNTSU9OIjoiZ3JhbnRlZCIsIklOVEVSTkVUIjoiZ3JhbnRlZCJ9LCJpbl9mb3JlZ3JvdW5kIjp0cnVlLCJpc19zcGxpdF9hcGtzIjpmYWxzZX0sImRldmljZSI6eyJtYW51ZmFjdHVyZXIiOiJHb29nbGUiLCJicmFuZCI6Imdvb2dsZSIsImZhbWlseSI6InNka19ncGhvbmU2NF94ODZfNjQiLCJtb2RlbCI6InNka19ncGhvbmU2NF94ODZfNjQiLCJtb2RlbF9pZCI6IkJQMjIuMjUwMjIxLjAxMCIsImFyY2hzIjpbIng4Nl82NCIsImFybTY0LXY4YSJdLCJiYXR0ZXJ5X2xldmVsIjoxMDAuMCwiY2hhcmdpbmciOmZhbHNlLCJvcmllbnRhdGlvbiI6InBvcnRyYWl0Iiwic2ltdWxhdG9yIjp0cnVlLCJtZW1vcnlfc2l6ZSI6MjA2NzI1NTI5NiwiZnJlZV9tZW1vcnkiOjY1MDUxODUyOCwibG93X21lbW9yeSI6ZmFsc2UsInN0b3JhZ2Vfc2l6ZSI6NjIyODExNTQ1NiwiZnJlZV9zdG9yYWdlIjo0NDcyMzczMjQ4LCJleHRlcm5hbF9zdG9yYWdlX3NpemUiOjUzNDc2MTQ3MiwiZXh0ZXJuYWxfZnJlZV9zdG9yYWdlIjo1MzQ3MDQxMjgsInNjcmVlbl93aWR0aF9waXhlbHMiOjcyMCwic2NyZWVuX2hlaWdodF9waXhlbHMiOjEyODAsInNjcmVlbl9kZW5zaXR5IjoyLjAsInNjcmVlbl9kcGkiOjMyMCwiYm9vdF90aW1lIjoiMjAyNS0wNC0wM1QxMjo0NjozMC45NjhaIiwidGltZXpvbmUiOiJHTVQiLCJpZCI6IjYxZmY0NDk4MGQ5NTQxOTViMDhjMmVlZDgxZTE5MTA0IiwiYmF0dGVyeV90ZW1wZXJhdHVyZSI6MjUuMCwibG9jYWxlIjoiZW5fVVMiLCJwcm9jZXNzb3JfY291bnQiOjQsInByb2Nlc3Nvcl9mcmVxdWVuY3kiOjAuMH0sIm9zIjp7Im5hbWUiOiJBbmRyb2lkIiwidmVyc2lvbiI6IjE2IiwiYnVpbGQiOiJCUDIyLjI1MDIyMS4wMTAiLCJrZXJuZWxfdmVyc2lvbiI6IjYuNi42Ni1hbmRyb2lkMTUtOC1nODA3Y2UzYjRmMDJmLWFiMTI5OTY5MDgiLCJyb290ZWQiOmZhbHNlfSwidHJhY2UiOnsidHJhY2VfaWQiOiIzOWIxZmE0NGUxZDU0NTFlOTZhYmExMDYxYTU2NjkyZiIsInNwYW5faWQiOiJkYzhkZmI2NDI1OWQ0YzEzIiwib3AiOiJkZWZhdWx0Iiwib3JpZ2luIjoibWFudWFsIiwiZGF0YSI6eyJ0aHJlYWQubmFtZSI6Im1haW4iLCJ0aHJlYWQuaWQiOiI5NTM2In19fSwic2RrIjp7Im5hbWUiOiJzZW50cnkuamF2YS5hbmRyb2lkIiwidmVyc2lvbiI6IjguNi4wIiwicGFja2FnZXMiOlt7Im5hbWUiOiJtYXZlbjppby5zZW50cnk6c2VudHJ5IiwidmVyc2lvbiI6IjguNi4wIn0seyJuYW1lIjoibWF2ZW46aW8uc2VudHJ5OnNlbnRyeS1hbmRyb2lkLWNvcmUiLCJ2ZXJzaW9uIjoiOC42LjAifSx7Im5hbWUiOiJtYXZlbjppby5zZW50cnk6c2VudHJ5LWFuZHJvaWQtcmVwbGF5IiwidmVyc2lvbiI6IjguNi4wIn0seyJuYW1lIjoibWF2ZW46aW8uc2VudHJ5OnNlbnRyeS1jb21wb3NlIiwidmVyc2lvbiI6IjguNi4wIn0seyJuYW1lIjoibWF2ZW46aW8uc2VudHJ5OnNlbnRyeS1hbmRyb2lkLW5kayIsInZlcnNpb24iOiI4LjYuMCJ9XSwiaW50ZWdyYXRpb25zIjpbIkFwcFN0YXJ0SW5zdHJ1bWVudGF0aW9uIiwiQ29tcG9zZUluc3RydW1lbnRhdGlvbiIsIkRhdGFiYXNlSW5zdHJ1bWVudGF0aW9uIiwiRmlsZUlPSW5zdHJ1bWVudGF0aW9uIiwiTG9nY2F0SW5zdHJ1bWVudGF0aW9uIiwiVW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyIiwiU2h1dGRvd25Ib29rIiwiU2VuZENhY2hlZEVudmVsb3BlIiwiTmRrIiwiQXBwTGlmZWN5Y2xlIiwiQW5yVjIiLCJBcHBDb21wb25lbnRzQnJlYWRjcnVtYnMiLCJFbnZlbG9wZUZpbGVPYnNlcnZlciIsIlN5c3RlbUV2ZW50c0JyZWFkY3J1bWJzIl19LCJ0YWdzIjp7ImlzU2lkZUxvYWRlZCI6InRydWUifSwicmVsZWFzZSI6ImNvbS5leGFtcGxlLm15YXBwbGljYXRpb25AMS4wKzEiLCJlbnZpcm9ubWVudCI6InByb2R1Y3Rpb24iLCJwbGF0Zm9ybSI6ImphdmEiLCJ1c2VyIjp7ImlkIjoiNjFmZjQ0OTgwZDk1NDE5NWIwOGMyZWVkODFlMTkxMDQifSwiZGlzdCI6IjEiLCJicmVhZGNydW1icyI6W3sidGltZXN0YW1wIjoiMjAyNS0wNC0wM1QxMzoxNjowMi42MDlaIiwidHlwZSI6Im5hdmlnYXRpb24iLCJkYXRhIjp7InN0YXRlIjoiZm9yZWdyb3VuZCJ9LCJjYXRlZ29yeSI6ImFwcC5saWZlY3ljbGUiLCJsZXZlbCI6ImluZm8ifSx7InRpbWVzdGFtcCI6IjIwMjUtMDQtMDNUMTM6MTY6MDQuMzMxWiIsInR5cGUiOiJzeXN0ZW0iLCJkYXRhIjp7ImxldmVsIjoxMDAuMCwiY2hhcmdpbmciOmZhbHNlLCJhY3Rpb24iOiJCQVRURVJZX0NIQU5HRUQifSwiY2F0ZWdvcnkiOiJkZXZpY2UuZXZlbnQiLCJsZXZlbCI6ImluZm8ifV19CnsiY29udGVudF90eXBlIjoiYXBwbGljYXRpb24vanNvbiIsInR5cGUiOiJzZXNzaW9uIiwibGVuZ3RoIjoyODd9Cnsic2lkIjoiNzEzZWQwMzViYjI5NDI2Mzk2MmE4YTAxZGNkZTVjNTIiLCJkaWQiOiI2MWZmNDQ5ODBkOTU0MTk1YjA4YzJlZWQ4MWUxOTEwNCIsInN0YXJ0ZWQiOiIyMDI1LTA0LTAzVDEzOjE2OjAyLjE3N1oiLCJzdGF0dXMiOiJvayIsInNlcSI6MTc0MzY4NjE5ODQ2NywiZXJyb3JzIjoyODcsInRpbWVzdGFtcCI6IjIwMjUtMDQtMDNUMTM6MTY6MzguNDY3WiIsImF0dHJzIjp7InJlbGVhc2UiOiJjb20uZXhhbXBsZS5teWFwcGxpY2F0aW9uQDEuMCsxIiwiZW52aXJvbm1lbnQiOiJwcm9kdWN0aW9uIn19Cg=="
694+
},
695+
"catcherType": "external/sentry"
696+
};
697+
698+
it('should correctly parse string envelope with cyrillic chars in exception title', async () => {
699+
await worker.handle(event as SentryEventWorkerTask);
700+
701+
const addedTaskPayload = getAddTaskPayloadFromLastCall();
702+
703+
expect(addedTaskPayload).toMatchObject({
704+
payload: expect.objectContaining({
705+
title: 'Exception: Тестовая ошибка #287',
706+
}),
707+
});
708+
});
709+
710+
it('should correctly parse buffer envelope with cyrillic chars in exception title', async () => {
711+
const eventBuffered = event as SentryEventWorkerTask & {
712+
payload: {
713+
envelope: Buffer;
714+
};
715+
};
716+
717+
(eventBuffered.payload as {
718+
envelope: Buffer
719+
}).envelope = base64toBuffer(event.payload.envelope)
720+
721+
await worker.handle(event as SentryEventWorkerTask);
722+
723+
const addedTaskPayload = getAddTaskPayloadFromLastCall();
724+
725+
expect(addedTaskPayload).toMatchObject({
726+
payload: expect.objectContaining({
727+
title: 'Exception: Тестовая ошибка #287',
728+
}),
729+
});
730+
});
731+
});
688732
});

0 commit comments

Comments
 (0)