From d1e7af14fe94bb791e2c52c11074df384b228fbc Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Fri, 2 Feb 2024 14:39:43 +0000 Subject: [PATCH 1/7] test(node): Add `prisma` OpenTelemetry integration tests. --- .../node-integration-tests/package.json | 4 + .../prisma-orm/docker-compose.yml | 13 ++ .../prisma-orm/package.json | 22 ++++ .../prisma/migrations/migration_lock.toml | 3 + .../migrations/sentry_test/migration.sql | 12 ++ .../prisma-orm/prisma/schema.prisma | 16 +++ .../prisma-orm/scenario.js | 52 ++++++++ .../tracing-experimental/prisma-orm/setup.ts | 16 +++ .../tracing-experimental/prisma-orm/test.ts | 112 ++++++++++++++++++ .../tracing-experimental/prisma-orm/yarn.lock | 51 ++++++++ 10 files changed, 301 insertions(+) create mode 100644 dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/docker-compose.yml create mode 100644 dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/package.json create mode 100644 dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/migrations/migration_lock.toml create mode 100644 dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/migrations/sentry_test/migration.sql create mode 100644 dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/schema.prisma create mode 100644 dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/scenario.js create mode 100755 dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts create mode 100644 dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts create mode 100644 dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/yarn.lock diff --git a/dev-packages/node-integration-tests/package.json b/dev-packages/node-integration-tests/package.json index 5480445e69bb..6534a854e125 100644 --- a/dev-packages/node-integration-tests/package.json +++ b/dev-packages/node-integration-tests/package.json @@ -16,9 +16,13 @@ "build:types": "tsc -p tsconfig.types.json", "clean": "rimraf -g **/node_modules && run-p clean:script", "clean:script": "node scripts/clean.js", + "prisma:init": "(cd suites/tracing/prisma-orm && ts-node ./setup.ts)", + "prisma:init:new": "(cd suites/tracing-new/prisma-orm && ts-node ./setup.ts)", + "prisma:init:experimental": "(cd suites/tracing-experimental/prisma-orm && ts-node ./setup.ts)", "lint": "eslint . --format stylish", "fix": "eslint . --format stylish --fix", "type-check": "tsc", + "pretest": "run-s --silent prisma:init prisma:init:new prisma:init:experimental", "test": "ts-node ./utils/run-tests.ts", "jest": "jest --config ./jest.config.js", "test:watch": "yarn test --watch" diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/docker-compose.yml b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/docker-compose.yml new file mode 100644 index 000000000000..45caa4bb3179 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/docker-compose.yml @@ -0,0 +1,13 @@ +version: '3.9' + +services: + db: + image: postgres:13 + restart: always + container_name: integration-tests-prisma + ports: + - '5433:5432' + environment: + POSTGRES_USER: prisma + POSTGRES_PASSWORD: prisma + POSTGRES_DB: tests diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/package.json b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/package.json new file mode 100644 index 000000000000..2587beb8f290 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/package.json @@ -0,0 +1,22 @@ +{ + "name": "sentry-prisma-test", + "version": "1.0.0", + "description": "", + "main": "index.js", + "engines": { + "node": ">=12" + }, + "scripts": { + "db-up": "docker-compose up -d", + "generate": "prisma generate", + "migrate": "prisma migrate dev -n sentry-test", + "setup": "run-s --silent db-up generate migrate" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@prisma/client": "5.9.1", + "prisma": "^5.9.1" + } +} diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/migrations/migration_lock.toml b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/migrations/migration_lock.toml new file mode 100644 index 000000000000..fbffa92c2bb7 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "postgresql" \ No newline at end of file diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/migrations/sentry_test/migration.sql b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/migrations/sentry_test/migration.sql new file mode 100644 index 000000000000..8619aaceb2b0 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/migrations/sentry_test/migration.sql @@ -0,0 +1,12 @@ +-- CreateTable +CREATE TABLE "User" ( + "id" SERIAL NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "email" TEXT NOT NULL, + "name" TEXT, + + CONSTRAINT "User_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/schema.prisma b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/schema.prisma new file mode 100644 index 000000000000..52682f1b6cf5 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/prisma/schema.prisma @@ -0,0 +1,16 @@ +datasource db { + url = "postgresql://prisma:prisma@localhost:5433/tests" + provider = "postgresql" +} + +generator client { + provider = "prisma-client-js" + previewFeatures = ["tracing"] +} + +model User { + id Int @id @default(autoincrement()) + createdAt DateTime @default(now()) + email String @unique + name String? +} diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/scenario.js b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/scenario.js new file mode 100644 index 000000000000..cedd11a7a7f9 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/scenario.js @@ -0,0 +1,52 @@ +const { randomBytes } = require('crypto'); +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ +const { PrismaClient } = require('@prisma/client'); +const Sentry = require('@sentry/node-experimental'); +const { loggingTransport } = require('@sentry-internal/node-integration-tests'); + +Sentry.init({ + dsn: 'https://public@dsn.ingest.sentry.io/1337', + release: '1.0', + tracesSampleRate: 1.0, + transport: loggingTransport, +}); + +// Stop the process from exiting before the transaction is sent +setInterval(() => {}, 1000); + +async function run() { + const client = new PrismaClient(); + + await Sentry.startSpan( + { + name: 'Test Transaction', + op: 'transaction', + }, + async span => { + await client.user.create({ + data: { + name: 'Tilda', + email: `tilda_${randomBytes(4).toString('hex')}@sentry.io`, + }, + }); + + await client.user.findMany(); + + await client.user.deleteMany({ + where: { + email: { + contains: 'sentry.io', + }, + }, + }); + + setTimeout(async () => { + span.end(); + await client.$disconnect(); + }, 500); + }, + ); +} + +// eslint-disable-next-line @typescript-eslint/no-floating-promises +run(); diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts new file mode 100755 index 000000000000..d5c4e552b397 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts @@ -0,0 +1,16 @@ +import { execSync } from 'child_process'; +import { parseSemver } from '@sentry/utils'; + +const NODE_VERSION = parseSemver(process.versions.node); + +if (NODE_VERSION.major && NODE_VERSION.major < 12) { + // eslint-disable-next-line no-console + console.warn(`Skipping Prisma tests on Node: ${NODE_VERSION.major}`); + process.exit(0); +} + +try { + execSync('yarn && yarn setup'); +} catch (_) { + process.exit(1); +} diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts new file mode 100644 index 000000000000..1f5f7eab15d1 --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts @@ -0,0 +1,112 @@ +import { conditionalTest } from '../../../utils'; +import { createRunner } from '../../../utils/runner'; + +conditionalTest({ min: 14 })('Prisma ORM Tests', () => { + test('CJS - should instrument GraphQL queries used from Apollo Server.', done => { + const EXPECTED_TRANSACTION = { + transaction: 'Test Transaction', + spans: expect.arrayContaining([ + expect.objectContaining({ + data: expect.objectContaining({ + method: 'create', + model: 'User', + name: 'User.create', + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:client:operation', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:client:serialize', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:client:connect', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:engine', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'db.type': 'postgres', + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:engine:connection', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'db.statement': expect.stringContaining( + 'INSERT INTO "public"."User" ("createdAt","email","name") VALUES ($1,$2,$3) RETURNING "public"."User"."id", "public"."User"."createdAt", "public"."User"."email", "public"."User"."name" /* traceparent', + ), + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:engine:db_query', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:engine:serialize', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:engine:response_json_serialization', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + method: 'findMany', + model: 'User', + name: 'User.findMany', + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:client:operation', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:client:serialize', + status: 'ok', + }), + expect.objectContaining({ + data: expect.objectContaining({ + 'otel.kind': 'INTERNAL', + 'sentry.origin': 'manual', + }), + description: 'prisma:engine', + status: 'ok', + }), + ]), + }; + + createRunner(__dirname, 'scenario.js').expect({ transaction: EXPECTED_TRANSACTION }).start(done); + }); +}); diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/yarn.lock b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/yarn.lock new file mode 100644 index 000000000000..9c0fc47be4be --- /dev/null +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/yarn.lock @@ -0,0 +1,51 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@prisma/client@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.9.1.tgz#d92bd2f7f006e0316cb4fda9d73f235965cf2c64" + integrity sha512-caSOnG4kxcSkhqC/2ShV7rEoWwd3XrftokxJqOCMVvia4NYV/TPtJlS9C2os3Igxw/Qyxumj9GBQzcStzECvtQ== + +"@prisma/debug@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.9.1.tgz#906274e73d3267f88b69459199fa3c51cd9511a3" + integrity sha512-yAHFSFCg8KVoL0oRUno3m60GAjsUKYUDkQ+9BA2X2JfVR3kRVSJFc/GpQ2fSORi4pSHZR9orfM4UC9OVXIFFTA== + +"@prisma/engines-version@5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64": + version "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64.tgz#54d2164f28d23e09d41cf9eb0bddbbe7f3aaa660" + integrity sha512-HFl7275yF0FWbdcNvcSRbbu9JCBSLMcurYwvWc8WGDnpu7APxQo2ONtZrUggU3WxLxUJ2uBX+0GOFIcJeVeOOQ== + +"@prisma/engines@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.9.1.tgz#767539afc6f193a182d0495b30b027f61f279073" + integrity sha512-gkdXmjxQ5jktxWNdDA5aZZ6R8rH74JkoKq6LD5mACSvxd2vbqWeWIOV0Py5wFC8vofOYShbt6XUeCIUmrOzOnQ== + dependencies: + "@prisma/debug" "5.9.1" + "@prisma/engines-version" "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" + "@prisma/fetch-engine" "5.9.1" + "@prisma/get-platform" "5.9.1" + +"@prisma/fetch-engine@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.9.1.tgz#5d3b2c9af54a242e37b3f9561b59ab72f8e92818" + integrity sha512-l0goQOMcNVOJs1kAcwqpKq3ylvkD9F04Ioe1oJoCqmz05mw22bNAKKGWuDd3zTUoUZr97va0c/UfLNru+PDmNA== + dependencies: + "@prisma/debug" "5.9.1" + "@prisma/engines-version" "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" + "@prisma/get-platform" "5.9.1" + +"@prisma/get-platform@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.9.1.tgz#a66bb46ab4d30db786c84150ef074ab0aad4549e" + integrity sha512-6OQsNxTyhvG+T2Ksr8FPFpuPeL4r9u0JF0OZHUBI/Uy9SS43sPyAIutt4ZEAyqWQt104ERh70EZedkHZKsnNbg== + dependencies: + "@prisma/debug" "5.9.1" + +prisma@^5.9.1: + version "5.9.1" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.9.1.tgz#baa3dd635fbf71504980978f10f55ea11068f6aa" + integrity sha512-Hy/8KJZz0ELtkw4FnG9MS9rNWlXcJhf98Z2QMqi0QiVMoS8PzsBkpla0/Y5hTlob8F3HeECYphBjqmBxrluUrQ== + dependencies: + "@prisma/engines" "5.9.1" From e1a7034ec85724c2fc793fac44b3815f342ab029 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Fri, 2 Feb 2024 14:39:43 +0000 Subject: [PATCH 2/7] test(node): Add `prisma` OpenTelemetry integration tests. --- .../suites/tracing-experimental/prisma-orm/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/package.json b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/package.json index 2587beb8f290..b9a5e7998269 100644 --- a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/package.json +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "engines": { - "node": ">=12" + "node": ">=16" }, "scripts": { "db-up": "docker-compose up -d", From b290c23755f4797646ad06e76b9e9359ec914a5e Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Mon, 12 Feb 2024 15:18:52 +0000 Subject: [PATCH 3/7] Update prisma versions for all tests. --- dev-packages/node-integration-tests/package.json | 2 +- .../suites/tracing-experimental/prisma-orm/test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-packages/node-integration-tests/package.json b/dev-packages/node-integration-tests/package.json index 6534a854e125..99552c268e47 100644 --- a/dev-packages/node-integration-tests/package.json +++ b/dev-packages/node-integration-tests/package.json @@ -32,7 +32,7 @@ "@nestjs/core": "^10.3.3", "@nestjs/common": "^10.3.3", "@nestjs/platform-express": "^10.3.3", - "@prisma/client": "3.15.2", + "@prisma/client": "5.9.1", "@sentry/node": "7.100.0", "@sentry/tracing": "7.100.0", "@sentry/types": "7.100.0", diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts index 1f5f7eab15d1..27728998c262 100644 --- a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts @@ -2,7 +2,7 @@ import { conditionalTest } from '../../../utils'; import { createRunner } from '../../../utils/runner'; conditionalTest({ min: 14 })('Prisma ORM Tests', () => { - test('CJS - should instrument GraphQL queries used from Apollo Server.', done => { + test('CJS - should instrument PostgreSQL queries from Prisma ORM', done => { const EXPECTED_TRANSACTION = { transaction: 'Test Transaction', spans: expect.arrayContaining([ From 330c7d548ac1f0715a15cb3df9dc846c74714f69 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Mon, 12 Feb 2024 15:50:43 +0000 Subject: [PATCH 4/7] Run prisma tests on node >=16 --- .../suites/tracing-experimental/prisma-orm/setup.ts | 2 +- .../suites/tracing-experimental/prisma-orm/test.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts index d5c4e552b397..46a2b39ed5cc 100755 --- a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts @@ -3,7 +3,7 @@ import { parseSemver } from '@sentry/utils'; const NODE_VERSION = parseSemver(process.versions.node); -if (NODE_VERSION.major && NODE_VERSION.major < 12) { +if (NODE_VERSION.major && NODE_VERSION.major < 16) { // eslint-disable-next-line no-console console.warn(`Skipping Prisma tests on Node: ${NODE_VERSION.major}`); process.exit(0); diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts index 27728998c262..32bcdf168555 100644 --- a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/test.ts @@ -1,7 +1,7 @@ import { conditionalTest } from '../../../utils'; import { createRunner } from '../../../utils/runner'; -conditionalTest({ min: 14 })('Prisma ORM Tests', () => { +conditionalTest({ min: 16 })('Prisma ORM Tests', () => { test('CJS - should instrument PostgreSQL queries from Prisma ORM', done => { const EXPECTED_TRANSACTION = { transaction: 'Test Transaction', From 4d3e7e7b9dacbdda10da2c4db65160b0dc5c5429 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Wed, 21 Feb 2024 18:49:55 +0000 Subject: [PATCH 5/7] Remove obsolete scripts. --- dev-packages/node-integration-tests/package.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/dev-packages/node-integration-tests/package.json b/dev-packages/node-integration-tests/package.json index 99552c268e47..1594d8e837d0 100644 --- a/dev-packages/node-integration-tests/package.json +++ b/dev-packages/node-integration-tests/package.json @@ -16,13 +16,11 @@ "build:types": "tsc -p tsconfig.types.json", "clean": "rimraf -g **/node_modules && run-p clean:script", "clean:script": "node scripts/clean.js", - "prisma:init": "(cd suites/tracing/prisma-orm && ts-node ./setup.ts)", - "prisma:init:new": "(cd suites/tracing-new/prisma-orm && ts-node ./setup.ts)", - "prisma:init:experimental": "(cd suites/tracing-experimental/prisma-orm && ts-node ./setup.ts)", + "prisma:init": "(cd suites/tracing-experimental/prisma-orm && ts-node ./setup.ts)", "lint": "eslint . --format stylish", "fix": "eslint . --format stylish --fix", "type-check": "tsc", - "pretest": "run-s --silent prisma:init prisma:init:new prisma:init:experimental", + "pretest": "run-s --silent prisma:init", "test": "ts-node ./utils/run-tests.ts", "jest": "jest --config ./jest.config.js", "test:watch": "yarn test --watch" From ee03a7fd98273b19e2f18e41bf66ee63a2152d73 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Wed, 21 Feb 2024 23:25:48 +0000 Subject: [PATCH 6/7] Import Sentry from `@sentry/node` --- .../suites/tracing-experimental/prisma-orm/scenario.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/scenario.js b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/scenario.js index cedd11a7a7f9..58b46ac1cf3a 100644 --- a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/scenario.js +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/scenario.js @@ -1,7 +1,7 @@ const { randomBytes } = require('crypto'); /* eslint-disable @typescript-eslint/no-unsafe-member-access */ const { PrismaClient } = require('@prisma/client'); -const Sentry = require('@sentry/node-experimental'); +const Sentry = require('@sentry/node'); const { loggingTransport } = require('@sentry-internal/node-integration-tests'); Sentry.init({ From 4c63decf8f293f12ad0dbf631dcec30efd475394 Mon Sep 17 00:00:00 2001 From: Onur Temizkan Date: Thu, 22 Feb 2024 10:50:00 +0000 Subject: [PATCH 7/7] Add comment about minimum node version. --- .../suites/tracing-experimental/prisma-orm/setup.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts index 46a2b39ed5cc..a71bec82f893 100755 --- a/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts +++ b/dev-packages/node-integration-tests/suites/tracing-experimental/prisma-orm/setup.ts @@ -3,6 +3,8 @@ import { parseSemver } from '@sentry/utils'; const NODE_VERSION = parseSemver(process.versions.node); +// Prisma v5 requires Node.js v16+ +// https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-5#nodejs-minimum-version-change if (NODE_VERSION.major && NODE_VERSION.major < 16) { // eslint-disable-next-line no-console console.warn(`Skipping Prisma tests on Node: ${NODE_VERSION.major}`);