From 91f677608f91e847af1528facabd0e82e42bf314 Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Wed, 29 May 2024 13:27:46 +0200 Subject: [PATCH] test(e2e): Remove axios from E2E tests (#12275) No need for it anymore, and actually it is much simpler using fetch because that does not throw when encountering a 404 error! --- .../angular-17/playwright.config.ts | 5 - .../angular-18/playwright.config.ts | 5 - .../create-next-app/playwright.config.ts | 5 - .../tests/behaviour-client.test.ts | 83 ++++------- .../tests/behaviour-server.test.ts | 35 +---- .../tests/behaviour-client.test.ts | 82 ++++------- .../tests/behaviour-client.test.ts | 104 ++++--------- .../tests/behaviour-client.test.ts | 104 ++++--------- .../tests/behaviour-client.test.ts | 104 ++++--------- .../nextjs-14/playwright.config.ts | 5 - .../nextjs-15/playwright.config.ts | 5 - .../nextjs-app-dir/playwright.config.ts | 5 - .../nextjs-app-dir/tests/exceptions.test.ts | 24 +-- .../tests/server-components.test.ts | 24 +-- .../nextjs-app-dir/tests/transactions.test.ts | 24 +-- .../playwright.config.mjs | 5 - .../playwright.config.ts | 5 - .../playwright.config.mjs | 5 - .../playwright.config.ts | 5 - .../node-express/playwright.config.ts | 5 - .../react-create-hash-router/package.json | 1 - .../tests/behaviour-test.spec.ts | 137 ++++++------------ .../react-router-6-use-routes/package.json | 1 - .../tests/behaviour-test.test.ts | 131 +++++------------ .../standard-frontend-react/package.json | 1 - .../tests/behaviour-test.spec.ts | 131 +++++------------ .../svelte-5/playwright.config.ts | 5 - .../sveltekit-2-svelte-5/playwright.config.ts | 5 - .../sveltekit-2/playwright.config.ts | 5 - .../vue-3/playwright.config.ts | 5 - .../webpack-4/tests/behaviour-test.spec.ts | 23 +-- .../webpack-5/tests/behaviour-test.spec.ts | 23 +-- 32 files changed, 294 insertions(+), 813 deletions(-) diff --git a/dev-packages/e2e-tests/test-applications/angular-17/playwright.config.ts b/dev-packages/e2e-tests/test-applications/angular-17/playwright.config.ts index df7c2d9758e9..b2ee35fdc4c7 100644 --- a/dev-packages/e2e-tests/test-applications/angular-17/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/angular-17/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env['TEST_ENV'] || 'production'; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/angular-18/playwright.config.ts b/dev-packages/e2e-tests/test-applications/angular-18/playwright.config.ts index df7c2d9758e9..b2ee35fdc4c7 100644 --- a/dev-packages/e2e-tests/test-applications/angular-18/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/angular-18/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env['TEST_ENV'] || 'production'; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/create-next-app/playwright.config.ts b/dev-packages/e2e-tests/test-applications/create-next-app/playwright.config.ts index 7c84f56d178f..b29068c3141c 100644 --- a/dev-packages/e2e-tests/test-applications/create-next-app/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/create-next-app/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env.TEST_ENV; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/create-next-app/tests/behaviour-client.test.ts b/dev-packages/e2e-tests/test-applications/create-next-app/tests/behaviour-client.test.ts index d994f13b7060..022cfd1cb5a6 100644 --- a/dev-packages/e2e-tests/test-applications/create-next-app/tests/behaviour-client.test.ts +++ b/dev-packages/e2e-tests/test-applications/create-next-app/tests/behaviour-client.test.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; const authToken = process.env.E2E_TEST_AUTH_TOKEN; const sentryTestOrgSlug = process.env.E2E_TEST_SENTRY_ORG_SLUG; @@ -20,24 +19,12 @@ test('Sends a client-side exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -71,28 +58,19 @@ test('Sends a pageload transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'pageload') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'pageload') { hadPageLoadTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -136,28 +114,19 @@ test('Sends a navigation transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'navigation') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'navigation') { hadPageNavigationTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/create-next-app/tests/behaviour-server.test.ts b/dev-packages/e2e-tests/test-applications/create-next-app/tests/behaviour-server.test.ts index 6b126c3e8130..0a5fd828f55d 100644 --- a/dev-packages/e2e-tests/test-applications/create-next-app/tests/behaviour-server.test.ts +++ b/dev-packages/e2e-tests/test-applications/create-next-app/tests/behaviour-server.test.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; const authToken = process.env.E2E_TEST_AUTH_TOKEN; const sentryTestOrgSlug = process.env.E2E_TEST_SENTRY_ORG_SLUG; @@ -18,21 +17,8 @@ test('Sends a server-side exception to Sentry', async ({ baseURL }) => { await expect .poll( async () => { - try { - const response = await axios.get(url, { headers: { Authorization: `Bearer ${authToken}` } }); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch(url, { headers: { Authorization: `Bearer ${authToken}` } }); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT }, ) @@ -53,21 +39,8 @@ test('Sends server-side transactions to Sentry', async ({ baseURL }) => { await expect .poll( async () => { - try { - const response = await axios.get(url, { headers: { Authorization: `Bearer ${authToken}` } }); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch(url, { headers: { Authorization: `Bearer ${authToken}` } }); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT }, ) diff --git a/dev-packages/e2e-tests/test-applications/create-remix-app-express-vite-dev/tests/behaviour-client.test.ts b/dev-packages/e2e-tests/test-applications/create-remix-app-express-vite-dev/tests/behaviour-client.test.ts index 2141f434708c..76d2a49a5afb 100644 --- a/dev-packages/e2e-tests/test-applications/create-remix-app-express-vite-dev/tests/behaviour-client.test.ts +++ b/dev-packages/e2e-tests/test-applications/create-remix-app-express-vite-dev/tests/behaviour-client.test.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; const EVENT_POLLING_TIMEOUT = 90_000; @@ -21,24 +20,11 @@ test('Sends a client-side exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -72,28 +58,19 @@ test('Sends a pageload transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'pageload') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'pageload') { hadPageLoadTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -137,28 +114,19 @@ test('Sends a navigation transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'navigation') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'navigation') { hadPageNavigationTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/create-remix-app-express/tests/behaviour-client.test.ts b/dev-packages/e2e-tests/test-applications/create-remix-app-express/tests/behaviour-client.test.ts index 944dcb07b4bd..5c347620701c 100644 --- a/dev-packages/e2e-tests/test-applications/create-remix-app-express/tests/behaviour-client.test.ts +++ b/dev-packages/e2e-tests/test-applications/create-remix-app-express/tests/behaviour-client.test.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; const EVENT_POLLING_TIMEOUT = 90_000; @@ -21,24 +20,11 @@ test('Sends a client-side exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -72,28 +58,19 @@ test('Sends a pageload transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'pageload') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'pageload') { hadPageLoadTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -137,28 +114,19 @@ test('Sends a navigation transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'navigation') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'navigation') { hadPageNavigationTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -182,23 +150,11 @@ test('Sends a client-side ErrorBoundary exception to Sentry', async ({ page }) = await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/create-remix-app-v2/tests/behaviour-client.test.ts b/dev-packages/e2e-tests/test-applications/create-remix-app-v2/tests/behaviour-client.test.ts index 944dcb07b4bd..5c347620701c 100644 --- a/dev-packages/e2e-tests/test-applications/create-remix-app-v2/tests/behaviour-client.test.ts +++ b/dev-packages/e2e-tests/test-applications/create-remix-app-v2/tests/behaviour-client.test.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; const EVENT_POLLING_TIMEOUT = 90_000; @@ -21,24 +20,11 @@ test('Sends a client-side exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -72,28 +58,19 @@ test('Sends a pageload transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'pageload') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'pageload') { hadPageLoadTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -137,28 +114,19 @@ test('Sends a navigation transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'navigation') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'navigation') { hadPageNavigationTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -182,23 +150,11 @@ test('Sends a client-side ErrorBoundary exception to Sentry', async ({ page }) = await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/create-remix-app/tests/behaviour-client.test.ts b/dev-packages/e2e-tests/test-applications/create-remix-app/tests/behaviour-client.test.ts index 944dcb07b4bd..5c347620701c 100644 --- a/dev-packages/e2e-tests/test-applications/create-remix-app/tests/behaviour-client.test.ts +++ b/dev-packages/e2e-tests/test-applications/create-remix-app/tests/behaviour-client.test.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; const EVENT_POLLING_TIMEOUT = 90_000; @@ -21,24 +20,11 @@ test('Sends a client-side exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -72,28 +58,19 @@ test('Sends a pageload transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'pageload') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'pageload') { hadPageLoadTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -137,28 +114,19 @@ test('Sends a navigation transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'navigation') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'navigation') { hadPageNavigationTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -182,23 +150,11 @@ test('Sends a client-side ErrorBoundary exception to Sentry', async ({ page }) = await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/nextjs-14/playwright.config.ts b/dev-packages/e2e-tests/test-applications/nextjs-14/playwright.config.ts index aedfbc9d6c61..bf1fc94f4292 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-14/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-14/playwright.config.ts @@ -2,11 +2,6 @@ import os from 'os'; import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env.TEST_ENV; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/nextjs-15/playwright.config.ts b/dev-packages/e2e-tests/test-applications/nextjs-15/playwright.config.ts index 0709f27158b4..ab02599b8f4f 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-15/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-15/playwright.config.ts @@ -2,11 +2,6 @@ import os from 'os'; import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env.TEST_ENV; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/playwright.config.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/playwright.config.ts index 0d21b775285a..a6fbfdc882cf 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/playwright.config.ts @@ -2,11 +2,6 @@ import os from 'os'; import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env.TEST_ENV; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/exceptions.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/exceptions.test.ts index b47df261ceec..f4cde4417d13 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/exceptions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/exceptions.test.ts @@ -1,6 +1,5 @@ import { expect, test } from '@playwright/test'; import { waitForError } from '@sentry-internal/event-proxy-server'; -import axios, { AxiosError } from 'axios'; const authToken = process.env.E2E_TEST_AUTH_TOKEN; const sentryTestOrgSlug = process.env.E2E_TEST_SENTRY_ORG_SLUG; @@ -24,24 +23,11 @@ test('Sends a client-side exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/server-components.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/server-components.test.ts index 309d9c4b9fd4..7dbb1cc2281f 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/server-components.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/server-components.test.ts @@ -1,6 +1,5 @@ import { expect, test } from '@playwright/test'; import { waitForError, waitForTransaction } from '@sentry-internal/event-proxy-server'; -import axios, { AxiosError } from 'axios'; const authToken = process.env.E2E_TEST_AUTH_TOKEN; const sentryTestOrgSlug = process.env.E2E_TEST_SENTRY_ORG_SLUG; @@ -28,24 +27,11 @@ test('Sends a transaction for a server component', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts index 5f7d4dc8496d..f42922668e75 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts +++ b/dev-packages/e2e-tests/test-applications/nextjs-app-dir/tests/transactions.test.ts @@ -1,6 +1,5 @@ import { expect, test } from '@playwright/test'; import { waitForTransaction } from '@sentry-internal/event-proxy-server'; -import axios, { AxiosError } from 'axios'; const packageJson = require('../package.json'); @@ -22,24 +21,11 @@ test('Sends a pageload transaction', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/node-express-cjs-preload/playwright.config.mjs b/dev-packages/e2e-tests/test-applications/node-express-cjs-preload/playwright.config.mjs index 59b8f10d691b..847f270e5f32 100644 --- a/dev-packages/e2e-tests/test-applications/node-express-cjs-preload/playwright.config.mjs +++ b/dev-packages/e2e-tests/test-applications/node-express-cjs-preload/playwright.config.mjs @@ -1,10 +1,5 @@ import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const eventProxyPort = 3031; const expressPort = 3030; diff --git a/dev-packages/e2e-tests/test-applications/node-express-esm-loader/playwright.config.ts b/dev-packages/e2e-tests/test-applications/node-express-esm-loader/playwright.config.ts index 5e672ed97676..c13cac26ba9a 100644 --- a/dev-packages/e2e-tests/test-applications/node-express-esm-loader/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/node-express-esm-loader/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const eventProxyPort = 3031; const expressPort = 3030; diff --git a/dev-packages/e2e-tests/test-applications/node-express-esm-preload/playwright.config.mjs b/dev-packages/e2e-tests/test-applications/node-express-esm-preload/playwright.config.mjs index 59b8f10d691b..847f270e5f32 100644 --- a/dev-packages/e2e-tests/test-applications/node-express-esm-preload/playwright.config.mjs +++ b/dev-packages/e2e-tests/test-applications/node-express-esm-preload/playwright.config.mjs @@ -1,10 +1,5 @@ import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const eventProxyPort = 3031; const expressPort = 3030; diff --git a/dev-packages/e2e-tests/test-applications/node-express-esm-without-loader/playwright.config.ts b/dev-packages/e2e-tests/test-applications/node-express-esm-without-loader/playwright.config.ts index 5e672ed97676..c13cac26ba9a 100644 --- a/dev-packages/e2e-tests/test-applications/node-express-esm-without-loader/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/node-express-esm-without-loader/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const eventProxyPort = 3031; const expressPort = 3030; diff --git a/dev-packages/e2e-tests/test-applications/node-express/playwright.config.ts b/dev-packages/e2e-tests/test-applications/node-express/playwright.config.ts index f8bff4ab3113..5edd64b3c768 100644 --- a/dev-packages/e2e-tests/test-applications/node-express/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/node-express/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const eventProxyPort = 3031; const expressPort = 3030; diff --git a/dev-packages/e2e-tests/test-applications/react-create-hash-router/package.json b/dev-packages/e2e-tests/test-applications/react-create-hash-router/package.json index 9c2d5d24868a..a93ca8f463fb 100644 --- a/dev-packages/e2e-tests/test-applications/react-create-hash-router/package.json +++ b/dev-packages/e2e-tests/test-applications/react-create-hash-router/package.json @@ -47,7 +47,6 @@ }, "devDependencies": { "@playwright/test": "1.26.1", - "axios": "1.6.0", "serve": "14.0.1" }, "volta": { diff --git a/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/behaviour-test.spec.ts b/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/behaviour-test.spec.ts index f288d14004d5..2e74b6d481ba 100644 --- a/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/behaviour-test.spec.ts +++ b/dev-packages/e2e-tests/test-applications/react-create-hash-router/tests/behaviour-test.spec.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; import { ReplayRecordingData } from './fixtures/ReplayRecordingData'; const EVENT_POLLING_TIMEOUT = 90_000; @@ -22,23 +21,11 @@ test('Sends an exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -72,29 +59,21 @@ test('Sends a pageload transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'pageload') { - expect(response.data.title).toBe('/'); - hadPageLoadTransaction = true; - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; + if (response.ok) { + const data = await response.json(); + + if (data.contexts.trace.op === 'pageload') { + expect(data.title).toBe('/'); + hadPageLoadTransaction = true; } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -138,29 +117,21 @@ test('Sends a navigation transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'navigation') { - expect(response.data.title).toBe('/user/:id'); - hadPageNavigationTransaction = true; - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; + if (data.contexts.trace.op === 'navigation') { + expect(data.title).toBe('/user/:id'); + hadPageNavigationTransaction = true; } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -197,24 +168,11 @@ test('Sends a Replay recording to Sentry', async ({ browser }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -226,24 +184,17 @@ test('Sends a Replay recording to Sentry', async ({ browser }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/recording-segments/?cursor=100%3A0%3A1`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status === 200 ? response.data[0] : response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/recording-segments/?cursor=100%3A0%3A1`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + return data[0]; } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/react-router-6-use-routes/package.json b/dev-packages/e2e-tests/test-applications/react-router-6-use-routes/package.json index 96d140adfa1d..88ebe78043ba 100644 --- a/dev-packages/e2e-tests/test-applications/react-router-6-use-routes/package.json +++ b/dev-packages/e2e-tests/test-applications/react-router-6-use-routes/package.json @@ -49,7 +49,6 @@ "devDependencies": { "@playwright/test": "^1.43.1", "@sentry-internal/event-proxy-server": "link:../../../event-proxy-server", - "axios": "1.6.0", "serve": "14.0.1" }, "volta": { diff --git a/dev-packages/e2e-tests/test-applications/react-router-6-use-routes/tests/behaviour-test.test.ts b/dev-packages/e2e-tests/test-applications/react-router-6-use-routes/tests/behaviour-test.test.ts index 1729850e778a..a4a0106d2d9c 100644 --- a/dev-packages/e2e-tests/test-applications/react-router-6-use-routes/tests/behaviour-test.test.ts +++ b/dev-packages/e2e-tests/test-applications/react-router-6-use-routes/tests/behaviour-test.test.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; import { ReplayRecordingData } from './fixtures/ReplayRecordingData'; const EVENT_POLLING_TIMEOUT = 90_000; @@ -22,23 +21,11 @@ test('Sends an exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -72,28 +59,19 @@ test('Sends a pageload transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'pageload') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'pageload') { hadPageLoadTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -137,28 +115,19 @@ test('Sends a navigation transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'navigation') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'navigation') { hadPageNavigationTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -195,24 +164,11 @@ test('Sends a Replay recording to Sentry', async ({ browser }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -224,24 +180,17 @@ test('Sends a Replay recording to Sentry', async ({ browser }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/recording-segments/?cursor=100%3A0%3A1`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status === 200 ? response.data[0] : response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/recording-segments/?cursor=100%3A0%3A1`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + return data[0]; } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/standard-frontend-react/package.json b/dev-packages/e2e-tests/test-applications/standard-frontend-react/package.json index 3650e2427b44..072a856a29da 100644 --- a/dev-packages/e2e-tests/test-applications/standard-frontend-react/package.json +++ b/dev-packages/e2e-tests/test-applications/standard-frontend-react/package.json @@ -48,7 +48,6 @@ }, "devDependencies": { "@playwright/test": "1.26.1", - "axios": "1.6.0", "serve": "14.0.1" }, "volta": { diff --git a/dev-packages/e2e-tests/test-applications/standard-frontend-react/tests/behaviour-test.spec.ts b/dev-packages/e2e-tests/test-applications/standard-frontend-react/tests/behaviour-test.spec.ts index 20f1c75ac222..35446d1c069c 100644 --- a/dev-packages/e2e-tests/test-applications/standard-frontend-react/tests/behaviour-test.spec.ts +++ b/dev-packages/e2e-tests/test-applications/standard-frontend-react/tests/behaviour-test.spec.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; import { ReplayRecordingData } from './fixtures/ReplayRecordingData'; const EVENT_POLLING_TIMEOUT = 90_000; @@ -22,23 +21,11 @@ test('Sends an exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -72,28 +59,19 @@ test('Sends a pageload transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'pageload') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'pageload') { hadPageLoadTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -137,28 +115,19 @@ test('Sends a navigation transaction to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - if (response.data.contexts.trace.op === 'navigation') { + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${transactionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + if (data.contexts.trace.op === 'navigation') { hadPageNavigationTransaction = true; } - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -195,24 +164,11 @@ test('Sends a Replay recording to Sentry', async ({ browser }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, @@ -224,24 +180,17 @@ test('Sends a Replay recording to Sentry', async ({ browser }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/recording-segments/?cursor=100%3A0%3A1`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - - return response.status === 200 ? response.data[0] : response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/replays/${replayId}/recording-segments/?cursor=100%3A0%3A1`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + + if (response.ok) { + const data = await response.json(); + return data[0]; } + + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/svelte-5/playwright.config.ts b/dev-packages/e2e-tests/test-applications/svelte-5/playwright.config.ts index 620005a461bb..37a5c8726a36 100644 --- a/dev-packages/e2e-tests/test-applications/svelte-5/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/svelte-5/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env.TEST_ENV; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/sveltekit-2-svelte-5/playwright.config.ts b/dev-packages/e2e-tests/test-applications/sveltekit-2-svelte-5/playwright.config.ts index c1b17eb1a713..87f7ec8bbe32 100644 --- a/dev-packages/e2e-tests/test-applications/sveltekit-2-svelte-5/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/sveltekit-2-svelte-5/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env.TEST_ENV; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/sveltekit-2/playwright.config.ts b/dev-packages/e2e-tests/test-applications/sveltekit-2/playwright.config.ts index c1661bd31389..fe5a219c8e3d 100644 --- a/dev-packages/e2e-tests/test-applications/sveltekit-2/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/sveltekit-2/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env.TEST_ENV; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/vue-3/playwright.config.ts b/dev-packages/e2e-tests/test-applications/vue-3/playwright.config.ts index 314ef2ba09bf..63c2b137a9d7 100644 --- a/dev-packages/e2e-tests/test-applications/vue-3/playwright.config.ts +++ b/dev-packages/e2e-tests/test-applications/vue-3/playwright.config.ts @@ -1,11 +1,6 @@ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; -// Fix urls not resolving to localhost on Node v17+ -// See: https://github.com/axios/axios/issues/3821#issuecomment-1413727575 -import { setDefaultResultOrder } from 'dns'; -setDefaultResultOrder('ipv4first'); - const testEnv = process.env['TEST_ENV'] || 'production'; if (!testEnv) { diff --git a/dev-packages/e2e-tests/test-applications/webpack-4/tests/behaviour-test.spec.ts b/dev-packages/e2e-tests/test-applications/webpack-4/tests/behaviour-test.spec.ts index 4f762a4028d4..2ef289910a6b 100644 --- a/dev-packages/e2e-tests/test-applications/webpack-4/tests/behaviour-test.spec.ts +++ b/dev-packages/e2e-tests/test-applications/webpack-4/tests/behaviour-test.spec.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; const EVENT_POLLING_TIMEOUT = 90_000; @@ -18,23 +17,11 @@ test('Sends an exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT, diff --git a/dev-packages/e2e-tests/test-applications/webpack-5/tests/behaviour-test.spec.ts b/dev-packages/e2e-tests/test-applications/webpack-5/tests/behaviour-test.spec.ts index 4f762a4028d4..2ef289910a6b 100644 --- a/dev-packages/e2e-tests/test-applications/webpack-5/tests/behaviour-test.spec.ts +++ b/dev-packages/e2e-tests/test-applications/webpack-5/tests/behaviour-test.spec.ts @@ -1,5 +1,4 @@ import { expect, test } from '@playwright/test'; -import axios, { AxiosError } from 'axios'; const EVENT_POLLING_TIMEOUT = 90_000; @@ -18,23 +17,11 @@ test('Sends an exception to Sentry', async ({ page }) => { await expect .poll( async () => { - try { - const response = await axios.get( - `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, - { headers: { Authorization: `Bearer ${authToken}` } }, - ); - return response.status; - } catch (e) { - if (e instanceof AxiosError && e.response) { - if (e.response.status !== 404) { - throw e; - } else { - return e.response.status; - } - } else { - throw e; - } - } + const response = await fetch( + `https://sentry.io/api/0/projects/${sentryTestOrgSlug}/${sentryTestProject}/events/${exceptionEventId}/`, + { headers: { Authorization: `Bearer ${authToken}` } }, + ); + return response.status; }, { timeout: EVENT_POLLING_TIMEOUT,