Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .cursor/BUGBOT.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ Do not flag the issues below if they appear in tests.
- Race conditions when waiting on multiple requests. Ensure that waiting checks are unique enough and don't depend on a hard order when there's a chance that telemetry can be sent in arbitrary order.
- Timeouts or sleeps in tests. Instead suggest concrete events or other signals to wait on.
- Flag usage of `getFirstEnvelope*`, `getMultipleEnvelope*` or related test helpers. These are NOT reliable anymore. Instead suggest helpers like `waitForTransaction`, `waitForError`, `waitForSpans`, etc.
- Flag any new or modified `docker-compose.yml` under `dev-packages/node-integration-tests/suites/` or `dev-packages/node-core-integration-tests/suites/` where a service does not define a `healthcheck:`. The runner uses `docker compose up --wait` and relies on healthchecks to know when services are actually ready; without one the test will race the service's startup.

## Platform-safe code

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ services:
ports:
- '5672:5672'
- '15672:15672'
healthcheck:
test: ['CMD-SHELL', 'rabbitmq-diagnostics -q ping']
interval: 2s
timeout: 10s
retries: 30
start_period: 15s

networks:
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ describe('amqplib auto-instrumentation', () => {
await createTestRunner()
.withDockerCompose({
workingDirectory: [__dirname],
readyMatches: ['Time to start RabbitMQ'],
})
.expect({
transaction: (transaction: TransactionEvent) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,9 @@ services:
container_name: integration-tests-kafka
ports:
- '9092:9092'
healthcheck:
test: ['CMD-SHELL', '/opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092']
interval: 2s
timeout: 5s
retries: 30
start_period: 15s
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ describe('kafkajs', () => {
await createRunner()
.withDockerCompose({
workingDirectory: [__dirname],
readyMatches: ['9092'],
})
.expect({
transaction: (transaction: TransactionEvent) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,9 @@ services:
environment:
MYSQL_ROOT_PASSWORD: docker
MYSQL_DATABASE: tests
healthcheck:
test: ['CMD-SHELL', 'mysqladmin ping -h 127.0.0.1 -uroot -pdocker']
interval: 2s
timeout: 3s
retries: 30
start_period: 10s
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ describe('knex auto instrumentation', () => {
};

await createRunner()
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port: 3306'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ services:
POSTGRES_USER: test
POSTGRES_PASSWORD: test
POSTGRES_DB: tests
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U test -d tests']
interval: 2s
timeout: 3s
retries: 30
start_period: 5s
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ describe('knex auto instrumentation', () => {
};

await createRunner()
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port 5432'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@ services:
- '3306:3306'
environment:
MYSQL_ROOT_PASSWORD: password
healthcheck:
test: ['CMD-SHELL', 'mysqladmin ping -h 127.0.0.1 -uroot -ppassword']
interval: 2s
timeout: 3s
retries: 30
start_period: 10s
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ describe('mysql2 auto instrumentation', () => {
};

await createRunner(__dirname, 'scenario.js')
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port: 3306'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ services:
POSTGRES_USER: test
POSTGRES_PASSWORD: test
POSTGRES_DB: tests
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U test -d tests']
interval: 2s
timeout: 3s
retries: 30
start_period: 5s
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ describe('postgres auto instrumentation', () => {
await createRunner(__dirname, 'scenario.js')
.withDockerCompose({
workingDirectory: [__dirname],
readyMatches: ['port 5432'],
setupCommand: 'yarn',
})
.expect({ transaction: EXPECTED_TRANSACTION })
Expand All @@ -61,7 +60,6 @@ describe('postgres auto instrumentation', () => {
await createRunner(__dirname, 'scenario-ignoreConnect.js')
.withDockerCompose({
workingDirectory: [__dirname],
readyMatches: ['port 5432'],
setupCommand: 'yarn',
})
.expect({
Expand Down Expand Up @@ -152,7 +150,6 @@ describe('postgres auto instrumentation', () => {
await createRunner(__dirname, 'scenario-native.js')
.withDockerCompose({
workingDirectory: [__dirname],
readyMatches: ['port 5432'],
setupCommand: 'yarn',
})
.expect({ transaction: EXPECTED_TRANSACTION })
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ services:
POSTGRES_USER: test
POSTGRES_PASSWORD: test
POSTGRES_DB: test_db
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U test -d test_db']
interval: 2s
timeout: 3s
retries: 30
start_period: 5s
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,7 @@ describe('postgresjs auto instrumentation', () => {
};

await createRunner(__dirname, 'scenario.js')
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port 5432'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.expect({ event: EXPECTED_ERROR_EVENT })
.start()
Expand Down Expand Up @@ -438,7 +438,7 @@ describe('postgresjs auto instrumentation', () => {

await createRunner(__dirname, 'scenario.mjs')
.withFlags('--import', `${__dirname}/instrument.mjs`)
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port 5432'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.expect({ event: EXPECTED_ERROR_EVENT })
.start()
Expand Down Expand Up @@ -532,7 +532,7 @@ describe('postgresjs auto instrumentation', () => {

await createRunner(__dirname, 'scenario-requestHook.js')
.withFlags('--require', `${__dirname}/instrument-requestHook.cjs`)
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port 5432'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down Expand Up @@ -625,7 +625,7 @@ describe('postgresjs auto instrumentation', () => {

await createRunner(__dirname, 'scenario-requestHook.mjs')
.withFlags('--import', `${__dirname}/instrument-requestHook.mjs`)
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port 5432'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down Expand Up @@ -706,7 +706,7 @@ describe('postgresjs auto instrumentation', () => {
};

await createRunner(__dirname, 'scenario-url.cjs')
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port 5432'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down Expand Up @@ -787,7 +787,7 @@ describe('postgresjs auto instrumentation', () => {

await createRunner(__dirname, 'scenario-url.mjs')
.withFlags('--import', `${__dirname}/instrument.mjs`)
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port 5432'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down Expand Up @@ -866,7 +866,7 @@ describe('postgresjs auto instrumentation', () => {
};

await createRunner(__dirname, 'scenario-unsafe.cjs')
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port 5432'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down Expand Up @@ -946,7 +946,7 @@ describe('postgresjs auto instrumentation', () => {

await createRunner(__dirname, 'scenario-unsafe.mjs')
.withFlags('--import', `${__dirname}/instrument.mjs`)
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port 5432'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ services:
POSTGRES_USER: prisma
POSTGRES_PASSWORD: prisma
POSTGRES_DB: tests
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U prisma -d tests']
interval: 2s
timeout: 3s
retries: 30
start_period: 5s
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ describe('Prisma ORM v5 Tests', () => {
await createRunner()
.withDockerCompose({
workingDirectory: [cwd],
readyMatches: ['port 5432'],
setupCommand: 'yarn prisma generate && yarn prisma migrate dev -n sentry-test',
})
.expect({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ services:
POSTGRES_USER: prisma
POSTGRES_PASSWORD: prisma
POSTGRES_DB: tests
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U prisma -d tests']
interval: 2s
timeout: 3s
retries: 30
start_period: 5s
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ describe('Prisma ORM v6 Tests', () => {
await createRunner()
.withDockerCompose({
workingDirectory: [cwd],
readyMatches: ['port 5432'],
setupCommand: `yarn prisma generate --schema ${cwd}/prisma/schema.prisma && yarn prisma migrate dev -n sentry-test --schema ${cwd}/prisma/schema.prisma`,
})
.expect({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,9 @@ services:
POSTGRES_USER: prisma
POSTGRES_PASSWORD: prisma
POSTGRES_DB: tests
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U prisma -d tests']
interval: 2s
timeout: 3s
retries: 30
start_period: 5s
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ conditionalTest({ min: 20 })('Prisma ORM v7 Tests', () => {
await createRunner()
.withDockerCompose({
workingDirectory: [cwd],
readyMatches: ['port 5432'],
setupCommand: `yarn prisma generate --schema ${cwd}/prisma/schema.prisma && tsc -p ${cwd}/prisma/tsconfig.json && yarn prisma migrate dev -n sentry-test --schema ${cwd}/prisma/schema.prisma`,
})
.expect({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ services:
db:
image: redis:latest
restart: always
container_name: integration-tests-redis
container_name: integration-tests-redis-cache
ports:
- '6379:6379'
healthcheck:
test: ['CMD-SHELL', 'redis-cli ping | grep -q PONG']
interval: 2s
timeout: 3s
retries: 30
start_period: 5s
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ describe('redis cache auto instrumentation', () => {
};

await createRunner(__dirname, 'scenario-ioredis.js')
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port=6379'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down Expand Up @@ -137,7 +137,7 @@ describe('redis cache auto instrumentation', () => {
};

await createRunner(__dirname, 'scenario-ioredis.js')
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port=6379'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down Expand Up @@ -228,7 +228,7 @@ describe('redis cache auto instrumentation', () => {
};

await createRunner(__dirname, 'scenario-redis-4.js')
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port=6379'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_REDIS_CONNECT })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@ services:
container_name: integration-tests-redis
ports:
- '6379:6379'
healthcheck:
test: ['CMD-SHELL', 'redis-cli ping | grep -q PONG']
interval: 2s
timeout: 3s
retries: 30
start_period: 5s
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ describe('redis auto instrumentation', () => {
};

await createRunner(__dirname, 'scenario-ioredis.js')
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['port=6379'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,9 @@ services:
environment:
ACCEPT_EULA: 'Y'
MSSQL_SA_PASSWORD: 'TESTing123'
healthcheck:
test: ['CMD-SHELL', '/opt/mssql-tools18/bin/sqlcmd -S localhost -U SA -P "TESTing123" -C -Q "SELECT 1"']
interval: 2s
timeout: 3s
retries: 30
start_period: 20s
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ describe.skip('tedious auto instrumentation', { timeout: 75_000 }, () => {
};

await createRunner(__dirname, 'scenario.js')
.withDockerCompose({ workingDirectory: [__dirname], readyMatches: ['1433'] })
.withDockerCompose({ workingDirectory: [__dirname] })
.expect({ transaction: EXPECTED_TRANSACTION })
.start()
.completed();
Expand Down
Loading
Loading