diff --git a/packages/integration-tests/suites/public-api/init/console/test.ts b/packages/integration-tests/suites/public-api/init/console/test.ts new file mode 100644 index 000000000000..1f71332533c8 --- /dev/null +++ b/packages/integration-tests/suites/public-api/init/console/test.ts @@ -0,0 +1,22 @@ +/* eslint-disable no-console */ +import { ConsoleMessage, expect } from '@playwright/test'; + +import { sentryTest } from '../../../../utils/fixtures'; + +// Regression test against https://github.com/getsentry/sentry-javascript/issues/4558 +sentryTest('should not change console output', async ({ getLocalTestPath, page }) => { + const url = await getLocalTestPath({ testDir: __dirname }); + + // https://playwright.dev/docs/api/class-page#page-event-console + page.on('console', (msg: ConsoleMessage) => { + expect(msg.text()).toEqual(`hello world ${msg.type()}`); + }); + + await page.goto(url); + + await page.evaluate(() => console.log('hello', 'world', 'log')); + + await page.evaluate(() => console.warn('hello', 'world', 'warning')); + + await page.evaluate(() => console.debug('hello', 'world', 'debug')); +}); diff --git a/packages/integration-tests/suites/public-api/init/init.js b/packages/integration-tests/suites/public-api/init/init.js new file mode 100644 index 000000000000..d8c94f36fdd0 --- /dev/null +++ b/packages/integration-tests/suites/public-api/init/init.js @@ -0,0 +1,7 @@ +import * as Sentry from '@sentry/browser'; + +window.Sentry = Sentry; + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', +}); diff --git a/packages/integration-tests/suites/public-api/init/template.hbs b/packages/integration-tests/suites/public-api/init/template.hbs new file mode 100644 index 000000000000..a28a09b7b485 --- /dev/null +++ b/packages/integration-tests/suites/public-api/init/template.hbs @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/packages/integrations/src/captureconsole.ts b/packages/integrations/src/captureconsole.ts index 9a1cb6534594..3f9076fd7293 100644 --- a/packages/integrations/src/captureconsole.ts +++ b/packages/integrations/src/captureconsole.ts @@ -72,7 +72,7 @@ export class CaptureConsole implements Integration { // this fails for some browsers. :( if (originalConsoleMethod) { - originalConsoleMethod.call(global.console, args); + originalConsoleMethod.apply(global.console, args); } }); }); diff --git a/packages/utils/src/instrument.ts b/packages/utils/src/instrument.ts index ec24bc828b60..47d5b5d615e0 100644 --- a/packages/utils/src/instrument.ts +++ b/packages/utils/src/instrument.ts @@ -122,7 +122,7 @@ function instrumentConsole(): void { // this fails for some browsers. :( if (originalConsoleMethod) { - originalConsoleMethod.call(global.console, args); + originalConsoleMethod.apply(global.console, args); } }; });