11import { DebugMeta , Event , SentryRequest , TransactionSamplingMethod } from '@sentry/types' ;
22
33import { API } from '../../src/api' ;
4- import { eventToSentryRequest } from '../../src/request' ;
4+ import { aggregateSessionsToSentryRequest , eventToSentryRequest } from '../../src/request' ;
5+
6+ const api = new API ( 'https://[email protected] /12312012' , { 7+ sdk : {
8+ integrations : [ 'AWSLambda' ] ,
9+ name : 'sentry.javascript.browser' ,
10+ version : `12.31.12` ,
11+ packages : [ { name : 'npm:@sentry/browser' , version : `12.31.12` } ] ,
12+ } ,
13+ } ) ;
514
615describe ( 'eventToSentryRequest' , ( ) => {
16+ let event : Event ;
717 function parseEnvelopeRequest ( request : SentryRequest ) : any {
818 const [ envelopeHeaderString , itemHeaderString , eventString ] = request . body . split ( '\n' ) ;
919
@@ -14,16 +24,6 @@ describe('eventToSentryRequest', () => {
1424 } ;
1525 }
1626
17- const api = new API ( 'https://[email protected] /12312012' , { 18- sdk : {
19- integrations : [ 'AWSLambda' ] ,
20- name : 'sentry.javascript.browser' ,
21- version : `12.31.12` ,
22- packages : [ { name : 'npm:@sentry/browser' , version : `12.31.12` } ] ,
23- } ,
24- } ) ;
25- let event : Event ;
26-
2727 beforeEach ( ( ) => {
2828 event = {
2929 contexts : { trace : { trace_id : '1231201211212012' , span_id : '12261980' , op : 'pageload' } } ,
@@ -125,3 +125,32 @@ describe('eventToSentryRequest', () => {
125125 ) ;
126126 } ) ;
127127} ) ;
128+
129+ describe ( 'aggregateSessionsToSentryRequest' , ( ) => {
130+ it ( 'test envelope creation for aggregateSessions' , ( ) => {
131+ const aggregatedSession = {
132+ attrs : { release : '1.0.x' , environment : 'prod' } ,
133+ aggregates : [ { started : '2021-04-08T12:18:00.000Z' , exited : 2 } ] ,
134+ } ;
135+ const result = aggregateSessionsToSentryRequest ( aggregatedSession , api ) ;
136+
137+ const [ envelopeHeaderString , itemHeaderString , sessionString ] = result . body . split ( '\n' ) ;
138+
139+ expect ( JSON . parse ( envelopeHeaderString ) ) . toEqual (
140+ expect . objectContaining ( {
141+ sdk : { name : 'sentry.javascript.browser' , version : '12.31.12' } ,
142+ } ) ,
143+ ) ;
144+ expect ( JSON . parse ( itemHeaderString ) ) . toEqual (
145+ expect . objectContaining ( {
146+ type : 'sessions' ,
147+ } ) ,
148+ ) ;
149+ expect ( JSON . parse ( sessionString ) ) . toEqual (
150+ expect . objectContaining ( {
151+ attrs : { release : '1.0.x' , environment : 'prod' } ,
152+ aggregates : [ { started : '2021-04-08T12:18:00.000Z' , exited : 2 } ] ,
153+ } ) ,
154+ ) ;
155+ } ) ;
156+ } ) ;
0 commit comments