11import {
2+ generateGlobalInjectorCode ,
23 generateModuleMetadataInjectorCode ,
34 getDependencies ,
45 getPackageJson ,
56 parseMajorVersion ,
67 replaceBooleanFlagsInCode ,
78 stringToUUID ,
89} from "../src/utils" ;
10+
11+ import fs from "fs" ;
12+
913import path from "node:path" ;
1014
1115type PackageJson = Record < string , unknown > ;
@@ -216,12 +220,73 @@ if (false && true) {
216220 } ) ;
217221} ) ;
218222
223+ describe ( "generateGlobalInjectorCode" , ( ) => {
224+ it ( "generates code with release" , ( ) => {
225+ const generatedCode = generateGlobalInjectorCode ( {
226+ release : "1.2.3" ,
227+ injectBuildInformation : false ,
228+ } ) ;
229+
230+ expect ( generatedCode ) . toMatchInlineSnapshot ( `
231+ "(function(){
232+ var _global =
233+ typeof window !== 'undefined' ?
234+ window :
235+ typeof global !== 'undefined' ?
236+ global :
237+ typeof globalThis !== 'undefined' ?
238+ globalThis :
239+ typeof self !== 'undefined' ?
240+ self :
241+ {};
242+
243+ _global.SENTRY_RELEASE={id:\\"1.2.3\\"};})();"
244+ ` ) ;
245+ } ) ;
246+
247+ it ( "generates code with release and build information" , ( ) => {
248+ jest . spyOn ( fs , "readFileSync" ) . mockReturnValueOnce (
249+ JSON . stringify ( {
250+ name : "test-app" ,
251+ dependencies : {
252+ myDep : "^2.1.4" ,
253+ } ,
254+ devDependencies : {
255+ rollup : "^3.1.4" ,
256+ } ,
257+ } )
258+ ) ;
259+
260+ const generatedCode = generateGlobalInjectorCode ( {
261+ release : "1.2.3" ,
262+ injectBuildInformation : true ,
263+ } ) ;
264+
265+ expect ( generatedCode ) . toMatchInlineSnapshot ( `
266+ "(function(){
267+ var _global =
268+ typeof window !== 'undefined' ?
269+ window :
270+ typeof global !== 'undefined' ?
271+ global :
272+ typeof globalThis !== 'undefined' ?
273+ globalThis :
274+ typeof self !== 'undefined' ?
275+ self :
276+ {};
277+
278+ _global.SENTRY_RELEASE={id:\\"1.2.3\\"};
279+ _global.SENTRY_BUILD_INFO={\\"deps\\":[\\"myDep\\",\\"rollup\\"],\\"depsVersions\\":{\\"rollup\\":3},\\"nodeVersion\\":18};})();"
280+ ` ) ;
281+ } ) ;
282+ } ) ;
283+
219284describe ( "generateModuleMetadataInjectorCode" , ( ) => {
220285 it ( "generates code with empty metadata object" , ( ) => {
221286 const generatedCode = generateModuleMetadataInjectorCode ( { } ) ;
222287 expect ( generatedCode ) . toMatchInlineSnapshot ( `
223- "{
224- let _sentryModuleMetadataGlobal =
288+ "(function() {
289+ var _sentryModuleMetadataGlobal =
225290 typeof window !== \\"undefined\\"
226291 ? window
227292 : typeof global !== \\"undefined\\"
@@ -241,7 +306,7 @@ describe("generateModuleMetadataInjectorCode", () => {
241306 _sentryModuleMetadataGlobal._sentryModuleMetadata[new _sentryModuleMetadataGlobal.Error().stack],
242307 {}
243308 );
244- }"
309+ })(); "
245310 ` ) ;
246311 } ) ;
247312
@@ -255,8 +320,8 @@ describe("generateModuleMetadataInjectorCode", () => {
255320 } ,
256321 } ) ;
257322 expect ( generatedCode ) . toMatchInlineSnapshot ( `
258- "{
259- let _sentryModuleMetadataGlobal =
323+ "(function() {
324+ var _sentryModuleMetadataGlobal =
260325 typeof window !== \\"undefined\\"
261326 ? window
262327 : typeof global !== \\"undefined\\"
@@ -276,7 +341,7 @@ describe("generateModuleMetadataInjectorCode", () => {
276341 _sentryModuleMetadataGlobal._sentryModuleMetadata[new _sentryModuleMetadataGlobal.Error().stack],
277342 {\\"file1.js\\":{\\"foo\\":\\"bar\\"},\\"file2.js\\":{\\"bar\\":\\"baz\\"}}
278343 );
279- }"
344+ })(); "
280345 ` ) ;
281346 } ) ;
282347} ) ;
0 commit comments