Merged
Show file tree
Hide file tree
Changes from all commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Failed to load files.
Original file line numberDiff line numberDiff line change
Expand Up@@ -123,4 +123,12 @@ test('Should capture an error and transaction for a app router page', async ({ p
expect(errorEvent.tags?.['my-global-scope-isolated-tag']).not.toBeDefined();
expect(transactionEvent.tags?.['my-isolated-tag']).toBe(true);
expect(transactionEvent.tags?.['my-global-scope-isolated-tag']).not.toBeDefined();

// Modules are set for Next.js
expect(errorEvent.modules).toEqual(
expect.objectContaining({
'@sentry/nextjs': expect.any(String),
'@playwright/test': expect.any(String),
}),
);
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
import * as Sentry from '@sentry/node';
import { loggingTransport } from '@sentry-internal/node-integration-tests';

Sentry.init({
dsn: 'https://[email protected]/1337',
release: '1.0',
transport: loggingTransport,
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
const { loggingTransport } = require('@sentry-internal/node-integration-tests');
const Sentry = require('@sentry/node');

Sentry.init({
dsn: 'https://[email protected]/1337',
release: '1.0',
transport: loggingTransport,
});

// express must be required after Sentry is initialized
const express = require('express');
const { startExpressServerAndSendPortToRunner } = require('@sentry-internal/node-integration-tests');

const app = express();

app.get('/test1', () => {
throw new Error('error_1');
});

Sentry.setupExpressErrorHandler(app);

startExpressServerAndSendPortToRunner(app);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
import * as Sentry from '@sentry/node';
import { startExpressServerAndSendPortToRunner } from '@sentry-internal/node-integration-tests';
import express from 'express';

const app = express();

app.get('/test1', () => {
throw new Error('error_1');
});

Sentry.setupExpressErrorHandler(app);

startExpressServerAndSendPortToRunner(app);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
import { SDK_VERSION } from '@sentry/core';
import { join } from 'path';
import { afterAll, describe, test } from 'vitest';
import { cleanupChildProcesses, createRunner } from '../../utils/runner';

describe('modulesIntegration', () => {
afterAll(() => {
cleanupChildProcesses();
});

test('CJS', async () => {
const runner = createRunner(__dirname, 'server.js')
.withMockSentryServer()
.expect({
event: {
modules: {
// exact version comes from require.caches
express: '4.21.1',
// this comes from package.json
'@sentry/node': SDK_VERSION,
yargs: '^16.2.0',
},
},
})
.start();
runner.makeRequest('get', '/test1', { expectError: true });
await runner.completed();
});

test('ESM', async () => {
const runner = createRunner(__dirname, 'server.mjs')
.withInstrument(join(__dirname, 'instrument.mjs'))
.withMockSentryServer()
.expect({
event: {
modules: {
// this comes from package.json
express: '^4.21.1',
'@sentry/node': SDK_VERSION,
yargs: '^16.2.0',
},
},
})
.start();
runner.makeRequest('get', '/test1', { expectError: true });
await runner.completed();
});
});
Original file line numberDiff line numberDiff line change
Expand Up@@ -40,10 +40,6 @@ import { defaultStackParser, getSentryRelease } from './api';
import { NodeClient } from './client';
import { initOpenTelemetry, maybeInitializeEsmLoader } from './initOtel';

function getCjsOnlyIntegrations(): Integration[] {
return isCjs() ? [modulesIntegration()] : [];
}

/**
* Get default integrations, excluding performance.
*/
Expand All@@ -69,7 +65,7 @@ export function getDefaultIntegrationsWithoutPerformance(): Integration[] {
nodeContextIntegration(),
childProcessIntegration(),
processSessionIntegration(),
...getCjsOnlyIntegrations(),
modulesIntegration(),
];
}

Expand Down
Loading