dd-trace 5.84.0 → 5.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ci/cypress/polyfills.js +1 -1
- package/ci/init.js +5 -5
- package/ext/exporters.js +1 -1
- package/ext/formats.js +1 -1
- package/ext/index.js +1 -1
- package/ext/kinds.js +1 -1
- package/ext/priority.js +1 -1
- package/ext/scopes.js +1 -1
- package/ext/tags.js +1 -1
- package/ext/types.js +1 -1
- package/index.d.ts +96 -24
- package/initialize.mjs +47 -31
- package/loader-hook.mjs +35 -22
- package/package.json +34 -31
- package/packages/datadog-code-origin/index.js +12 -10
- package/packages/datadog-core/src/storage.js +30 -12
- package/packages/datadog-core/src/utils/src/pick.js +2 -2
- package/packages/datadog-esbuild/index.js +75 -79
- package/packages/datadog-esbuild/src/log.js +32 -0
- package/packages/datadog-esbuild/src/utils.js +12 -8
- package/packages/datadog-instrumentations/src/aerospike.js +3 -3
- package/packages/datadog-instrumentations/src/ai.js +5 -5
- package/packages/datadog-instrumentations/src/amqp10.js +1 -1
- package/packages/datadog-instrumentations/src/amqplib.js +1 -1
- package/packages/datadog-instrumentations/src/anthropic.js +3 -3
- package/packages/datadog-instrumentations/src/apollo-server.js +4 -4
- package/packages/datadog-instrumentations/src/apollo.js +2 -2
- package/packages/datadog-instrumentations/src/avsc.js +1 -1
- package/packages/datadog-instrumentations/src/aws-sdk.js +4 -4
- package/packages/datadog-instrumentations/src/azure-event-hubs.js +2 -2
- package/packages/datadog-instrumentations/src/azure-functions.js +1 -1
- package/packages/datadog-instrumentations/src/azure-service-bus.js +1 -1
- package/packages/datadog-instrumentations/src/body-parser.js +2 -2
- package/packages/datadog-instrumentations/src/bunyan.js +1 -1
- package/packages/datadog-instrumentations/src/cassandra-driver.js +1 -1
- package/packages/datadog-instrumentations/src/child_process.js +7 -7
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +17 -16
- package/packages/datadog-instrumentations/src/cookie-parser.js +1 -1
- package/packages/datadog-instrumentations/src/couchbase.js +8 -6
- package/packages/datadog-instrumentations/src/crypto.js +1 -1
- package/packages/datadog-instrumentations/src/cucumber.js +19 -19
- package/packages/datadog-instrumentations/src/cypress.js +1 -1
- package/packages/datadog-instrumentations/src/dns.js +2 -2
- package/packages/datadog-instrumentations/src/elasticsearch.js +2 -2
- package/packages/datadog-instrumentations/src/express-mongo-sanitize.js +2 -2
- package/packages/datadog-instrumentations/src/express-session.js +1 -1
- package/packages/datadog-instrumentations/src/express.js +4 -4
- package/packages/datadog-instrumentations/src/fastify.js +1 -1
- package/packages/datadog-instrumentations/src/fetch.js +2 -2
- package/packages/datadog-instrumentations/src/fs.js +7 -7
- package/packages/datadog-instrumentations/src/generic-pool.js +2 -2
- package/packages/datadog-instrumentations/src/google-cloud-pubsub.js +8 -8
- package/packages/datadog-instrumentations/src/google-cloud-vertexai.js +4 -4
- package/packages/datadog-instrumentations/src/google-genai.js +1 -1
- package/packages/datadog-instrumentations/src/graphql.js +10 -10
- package/packages/datadog-instrumentations/src/grpc/client.js +9 -13
- package/packages/datadog-instrumentations/src/grpc/types.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/bundler-register.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/check-require-cache.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/extract-package-and-module-path.js +2 -2
- package/packages/datadog-instrumentations/src/helpers/hooks.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/register.js +7 -7
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/index.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/langchain.js +55 -55
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +1 -1
- package/packages/datadog-instrumentations/src/helpers/router-helper.js +7 -7
- package/packages/datadog-instrumentations/src/helpers/shared-utils.js +1 -1
- package/packages/datadog-instrumentations/src/hono.js +6 -6
- package/packages/datadog-instrumentations/src/http/client.js +1 -1
- package/packages/datadog-instrumentations/src/http/server.js +4 -4
- package/packages/datadog-instrumentations/src/http2/server.js +1 -1
- package/packages/datadog-instrumentations/src/ioredis.js +1 -1
- package/packages/datadog-instrumentations/src/iovalkey.js +1 -1
- package/packages/datadog-instrumentations/src/jest.js +196 -66
- package/packages/datadog-instrumentations/src/kafkajs.js +9 -8
- package/packages/datadog-instrumentations/src/knex.js +2 -2
- package/packages/datadog-instrumentations/src/koa.js +3 -1
- package/packages/datadog-instrumentations/src/ldapjs.js +1 -1
- package/packages/datadog-instrumentations/src/light-my-request.js +1 -1
- package/packages/datadog-instrumentations/src/limitd-client.js +1 -1
- package/packages/datadog-instrumentations/src/mariadb.js +1 -1
- package/packages/datadog-instrumentations/src/memcached.js +1 -1
- package/packages/datadog-instrumentations/src/mocha/common.js +3 -3
- package/packages/datadog-instrumentations/src/mocha/main.js +33 -24
- package/packages/datadog-instrumentations/src/mocha/utils.js +15 -11
- package/packages/datadog-instrumentations/src/mocha/worker.js +4 -4
- package/packages/datadog-instrumentations/src/moleculer/server.js +1 -1
- package/packages/datadog-instrumentations/src/mongodb-core.js +3 -3
- package/packages/datadog-instrumentations/src/mongodb.js +7 -7
- package/packages/datadog-instrumentations/src/mongoose.js +10 -10
- package/packages/datadog-instrumentations/src/mquery.js +6 -6
- package/packages/datadog-instrumentations/src/multer.js +1 -1
- package/packages/datadog-instrumentations/src/mysql.js +1 -1
- package/packages/datadog-instrumentations/src/net.js +6 -6
- package/packages/datadog-instrumentations/src/next.js +6 -6
- package/packages/datadog-instrumentations/src/nyc.js +34 -2
- package/packages/datadog-instrumentations/src/openai.js +24 -24
- package/packages/datadog-instrumentations/src/oracledb.js +2 -2
- package/packages/datadog-instrumentations/src/otel-sdk-trace.js +1 -1
- package/packages/datadog-instrumentations/src/passport-http.js +1 -1
- package/packages/datadog-instrumentations/src/passport-local.js +1 -1
- package/packages/datadog-instrumentations/src/passport-utils.js +1 -1
- package/packages/datadog-instrumentations/src/passport.js +1 -1
- package/packages/datadog-instrumentations/src/pg.js +3 -3
- package/packages/datadog-instrumentations/src/pino.js +2 -2
- package/packages/datadog-instrumentations/src/playwright.js +59 -59
- package/packages/datadog-instrumentations/src/prisma.js +216 -75
- package/packages/datadog-instrumentations/src/promise-js.js +1 -1
- package/packages/datadog-instrumentations/src/promise.js +1 -1
- package/packages/datadog-instrumentations/src/protobufjs.js +6 -6
- package/packages/datadog-instrumentations/src/q.js +2 -2
- package/packages/datadog-instrumentations/src/redis.js +2 -2
- package/packages/datadog-instrumentations/src/rhea.js +5 -5
- package/packages/datadog-instrumentations/src/router.js +8 -8
- package/packages/datadog-instrumentations/src/selenium.js +3 -3
- package/packages/datadog-instrumentations/src/sequelize.js +1 -1
- package/packages/datadog-instrumentations/src/sharedb.js +2 -2
- package/packages/datadog-instrumentations/src/tedious.js +1 -1
- package/packages/datadog-instrumentations/src/undici.js +2 -2
- package/packages/datadog-instrumentations/src/url.js +5 -5
- package/packages/datadog-instrumentations/src/vitest.js +56 -45
- package/packages/datadog-instrumentations/src/when.js +1 -1
- package/packages/datadog-instrumentations/src/winston.js +1 -1
- package/packages/datadog-instrumentations/src/ws.js +150 -41
- package/packages/datadog-plugin-aerospike/src/index.js +4 -4
- package/packages/datadog-plugin-ai/src/index.js +1 -1
- package/packages/datadog-plugin-ai/src/tracing.js +2 -2
- package/packages/datadog-plugin-ai/src/utils.js +1 -1
- package/packages/datadog-plugin-amqp10/src/consumer.js +2 -2
- package/packages/datadog-plugin-amqp10/src/index.js +1 -1
- package/packages/datadog-plugin-amqp10/src/producer.js +2 -2
- package/packages/datadog-plugin-amqplib/src/client.js +2 -2
- package/packages/datadog-plugin-amqplib/src/consumer.js +2 -2
- package/packages/datadog-plugin-amqplib/src/index.js +1 -1
- package/packages/datadog-plugin-amqplib/src/producer.js +2 -2
- package/packages/datadog-plugin-amqplib/src/util.js +1 -1
- package/packages/datadog-plugin-anthropic/src/index.js +1 -1
- package/packages/datadog-plugin-anthropic/src/tracing.js +2 -2
- package/packages/datadog-plugin-apollo/src/gateway/fetch.js +1 -1
- package/packages/datadog-plugin-apollo/src/gateway/index.js +1 -1
- package/packages/datadog-plugin-apollo/src/gateway/request.js +5 -5
- package/packages/datadog-plugin-apollo/src/index.js +1 -1
- package/packages/datadog-plugin-avsc/src/schema_iterator.js +3 -3
- package/packages/datadog-plugin-aws-sdk/src/base.js +11 -10
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/index.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/tracing.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +24 -24
- package/packages/datadog-plugin-aws-sdk/src/services/cloudwatchlogs.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/eventbridge.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +6 -6
- package/packages/datadog-plugin-aws-sdk/src/services/lambda.js +3 -3
- package/packages/datadog-plugin-aws-sdk/src/services/redshift.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/s3.js +1 -1
- package/packages/datadog-plugin-aws-sdk/src/services/sns.js +5 -5
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +12 -12
- package/packages/datadog-plugin-aws-sdk/src/util.js +1 -1
- package/packages/datadog-plugin-azure-event-hubs/src/index.js +1 -1
- package/packages/datadog-plugin-azure-event-hubs/src/producer.js +3 -3
- package/packages/datadog-plugin-azure-functions/src/index.js +11 -10
- package/packages/datadog-plugin-azure-service-bus/src/index.js +1 -1
- package/packages/datadog-plugin-azure-service-bus/src/producer.js +3 -3
- package/packages/datadog-plugin-bullmq/src/consumer.js +2 -2
- package/packages/datadog-plugin-bullmq/src/index.js +1 -1
- package/packages/datadog-plugin-bullmq/src/producer.js +11 -11
- package/packages/datadog-plugin-cassandra-driver/src/index.js +2 -2
- package/packages/datadog-plugin-child_process/src/index.js +2 -2
- package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +5 -5
- package/packages/datadog-plugin-confluentinc-kafka-javascript/src/index.js +1 -1
- package/packages/datadog-plugin-couchbase/src/index.js +3 -3
- package/packages/datadog-plugin-cucumber/src/index.js +17 -23
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +73 -56
- package/packages/datadog-plugin-cypress/src/plugin.js +1 -1
- package/packages/datadog-plugin-cypress/src/support.js +56 -9
- package/packages/datadog-plugin-dd-trace-api/src/index.js +1 -1
- package/packages/datadog-plugin-dns/src/index.js +1 -1
- package/packages/datadog-plugin-dns/src/lookup.js +2 -2
- package/packages/datadog-plugin-dns/src/lookup_service.js +3 -3
- package/packages/datadog-plugin-dns/src/resolve.js +2 -2
- package/packages/datadog-plugin-dns/src/reverse.js +2 -2
- package/packages/datadog-plugin-elasticsearch/src/index.js +2 -2
- package/packages/datadog-plugin-express/src/index.js +1 -1
- package/packages/datadog-plugin-fastify/src/index.js +1 -1
- package/packages/datadog-plugin-fs/src/index.js +2 -2
- package/packages/datadog-plugin-google-cloud-pubsub/src/client.js +2 -2
- package/packages/datadog-plugin-google-cloud-pubsub/src/consumer.js +10 -10
- package/packages/datadog-plugin-google-cloud-pubsub/src/index.js +1 -1
- package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +11 -10
- package/packages/datadog-plugin-google-cloud-pubsub/src/pubsub-push-subscription.js +6 -6
- package/packages/datadog-plugin-google-cloud-vertexai/src/index.js +1 -1
- package/packages/datadog-plugin-google-cloud-vertexai/src/tracing.js +2 -2
- package/packages/datadog-plugin-google-cloud-vertexai/src/utils.js +1 -1
- package/packages/datadog-plugin-google-genai/src/index.js +1 -1
- package/packages/datadog-plugin-google-genai/src/tracing.js +2 -2
- package/packages/datadog-plugin-graphql/src/execute.js +2 -2
- package/packages/datadog-plugin-graphql/src/index.js +2 -2
- package/packages/datadog-plugin-graphql/src/parse.js +1 -1
- package/packages/datadog-plugin-graphql/src/resolve.js +6 -6
- package/packages/datadog-plugin-graphql/src/utils.js +1 -1
- package/packages/datadog-plugin-graphql/src/validate.js +2 -2
- package/packages/datadog-plugin-grpc/src/client.js +3 -3
- package/packages/datadog-plugin-grpc/src/index.js +1 -1
- package/packages/datadog-plugin-grpc/src/server.js +3 -3
- package/packages/datadog-plugin-grpc/src/util.js +2 -2
- package/packages/datadog-plugin-http/src/client.js +10 -10
- package/packages/datadog-plugin-http/src/index.js +1 -1
- package/packages/datadog-plugin-http/src/server.js +23 -8
- package/packages/datadog-plugin-http2/src/client.js +6 -6
- package/packages/datadog-plugin-http2/src/index.js +1 -1
- package/packages/datadog-plugin-http2/src/server.js +1 -1
- package/packages/datadog-plugin-jest/src/index.js +67 -31
- package/packages/datadog-plugin-jest/src/util.js +8 -2
- package/packages/datadog-plugin-kafkajs/src/consumer.js +5 -5
- package/packages/datadog-plugin-kafkajs/src/index.js +1 -1
- package/packages/datadog-plugin-kafkajs/src/producer.js +5 -5
- package/packages/datadog-plugin-kafkajs/src/utils.js +1 -1
- package/packages/datadog-plugin-langchain/src/tokens.js +2 -2
- package/packages/datadog-plugin-langchain/src/tracing.js +4 -4
- package/packages/datadog-plugin-memcached/src/index.js +2 -2
- package/packages/datadog-plugin-mocha/src/index.js +15 -27
- package/packages/datadog-plugin-moleculer/src/client.js +1 -1
- package/packages/datadog-plugin-moleculer/src/index.js +1 -1
- package/packages/datadog-plugin-moleculer/src/server.js +2 -2
- package/packages/datadog-plugin-moleculer/src/util.js +1 -1
- package/packages/datadog-plugin-mongodb-core/src/index.js +5 -5
- package/packages/datadog-plugin-mysql/src/index.js +2 -2
- package/packages/datadog-plugin-net/src/ipc.js +2 -2
- package/packages/datadog-plugin-net/src/tcp.js +4 -4
- package/packages/datadog-plugin-next/src/index.js +4 -4
- package/packages/datadog-plugin-nyc/src/index.js +60 -0
- package/packages/datadog-plugin-openai/src/index.js +1 -1
- package/packages/datadog-plugin-openai/src/services.js +3 -3
- package/packages/datadog-plugin-openai/src/stream-helpers.js +1 -1
- package/packages/datadog-plugin-openai/src/tracing.js +10 -10
- package/packages/datadog-plugin-oracledb/src/connection-parser.js +1 -1
- package/packages/datadog-plugin-oracledb/src/index.js +1 -1
- package/packages/datadog-plugin-pg/src/index.js +2 -2
- package/packages/datadog-plugin-playwright/src/index.js +22 -19
- package/packages/datadog-plugin-prisma/src/datadog-tracing-helper.js +118 -0
- package/packages/datadog-plugin-prisma/src/index.js +132 -10
- package/packages/datadog-plugin-protobufjs/src/schema_iterator.js +3 -3
- package/packages/datadog-plugin-redis/src/index.js +2 -2
- package/packages/datadog-plugin-restify/src/index.js +1 -1
- package/packages/datadog-plugin-rhea/src/consumer.js +2 -2
- package/packages/datadog-plugin-rhea/src/index.js +1 -1
- package/packages/datadog-plugin-rhea/src/producer.js +2 -2
- package/packages/datadog-plugin-router/src/index.js +31 -22
- package/packages/datadog-plugin-selenium/src/index.js +2 -2
- package/packages/datadog-plugin-sharedb/src/index.js +2 -2
- package/packages/datadog-plugin-tedious/src/index.js +2 -2
- package/packages/datadog-plugin-undici/src/index.js +5 -5
- package/packages/datadog-plugin-vitest/src/index.js +42 -25
- package/packages/datadog-plugin-ws/src/close.js +10 -11
- package/packages/datadog-plugin-ws/src/index.js +1 -1
- package/packages/datadog-plugin-ws/src/producer.js +8 -9
- package/packages/datadog-plugin-ws/src/receiver.js +8 -9
- package/packages/datadog-plugin-ws/src/server.js +25 -12
- package/packages/datadog-plugin-ws/src/util.js +48 -16
- package/packages/datadog-shimmer/src/shimmer.js +3 -3
- package/packages/dd-trace/index.js +2 -2
- package/packages/dd-trace/src/agent/info.js +2 -2
- package/packages/dd-trace/src/agent/url.js +1 -1
- package/packages/dd-trace/src/aiguard/client.js +3 -3
- package/packages/dd-trace/src/aiguard/sdk.js +6 -6
- package/packages/dd-trace/src/aiguard/tags.js +1 -1
- package/packages/dd-trace/src/analytics_sampler.js +1 -1
- package/packages/dd-trace/src/appsec/activation.js +1 -1
- package/packages/dd-trace/src/appsec/addresses.js +1 -1
- package/packages/dd-trace/src/appsec/api_security_sampler.js +1 -1
- package/packages/dd-trace/src/appsec/blocked_templates.js +1 -1
- package/packages/dd-trace/src/appsec/blocking.js +5 -5
- package/packages/dd-trace/src/appsec/channels.js +1 -1
- package/packages/dd-trace/src/appsec/graphql.js +13 -13
- package/packages/dd-trace/src/appsec/iast/analyzers/analyzers.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/cookie-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-base-analyzer.js +6 -5
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-password-rules.js +2 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-rule-type.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secret-rules.js +148 -148
- package/packages/dd-trace/src/appsec/iast/analyzers/hardcoded-secrets-rules.js +148 -148
- package/packages/dd-trace/src/appsec/iast/analyzers/index.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/missing-header-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/nosql-injection-mongodb-analyzer.js +7 -8
- package/packages/dd-trace/src/appsec/iast/analyzers/path-traversal-analyzer.js +2 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/set-cookies-header-interceptor.js +2 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/unvalidated-redirect-analyzer.js +2 -2
- package/packages/dd-trace/src/appsec/iast/analyzers/vulnerability-analyzer.js +3 -3
- package/packages/dd-trace/src/appsec/iast/analyzers/weak-cipher-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/analyzers/weak-hash-analyzer.js +2 -2
- package/packages/dd-trace/src/appsec/iast/context/context-plugin.js +3 -3
- package/packages/dd-trace/src/appsec/iast/iast-context.js +6 -3
- package/packages/dd-trace/src/appsec/iast/iast-plugin.js +17 -9
- package/packages/dd-trace/src/appsec/iast/index.js +2 -2
- package/packages/dd-trace/src/appsec/iast/overhead-controller.js +9 -9
- package/packages/dd-trace/src/appsec/iast/path-line.js +7 -6
- package/packages/dd-trace/src/appsec/iast/security-controls/index.js +11 -11
- package/packages/dd-trace/src/appsec/iast/security-controls/parser.js +49 -17
- package/packages/dd-trace/src/appsec/iast/tags.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/constants.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/csi-methods.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/filter.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/index.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations-taint-object.js +3 -6
- package/packages/dd-trace/src/appsec/iast/taint-tracking/operations.js +2 -2
- package/packages/dd-trace/src/appsec/iast/taint-tracking/plugin.js +5 -5
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter-esm.mjs +4 -4
- package/packages/dd-trace/src/appsec/iast/taint-tracking/rewriter.js +5 -5
- package/packages/dd-trace/src/appsec/iast/taint-tracking/secure-marks.js +6 -4
- package/packages/dd-trace/src/appsec/iast/taint-tracking/source-types.js +1 -1
- package/packages/dd-trace/src/appsec/iast/taint-tracking/taint-tracking-impl.js +8 -8
- package/packages/dd-trace/src/appsec/iast/telemetry/iast-metric.js +4 -4
- package/packages/dd-trace/src/appsec/iast/telemetry/namespaces.js +2 -2
- package/packages/dd-trace/src/appsec/iast/telemetry/span-tags.js +6 -6
- package/packages/dd-trace/src/appsec/iast/telemetry/verbosity.js +2 -2
- package/packages/dd-trace/src/appsec/iast/utils.js +3 -3
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/constants.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/range-utils.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/hardcoded-password-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/sql-sensitive-analyzer.js +6 -6
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-analyzers/tainted-range-based-sensitive-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-handler.js +8 -8
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/evidence-redaction/sensitive-regex.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/index.js +12 -11
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +5 -5
- package/packages/dd-trace/src/appsec/iast/vulnerabilities.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerability-reporter.js +4 -4
- package/packages/dd-trace/src/appsec/index.js +20 -22
- package/packages/dd-trace/src/appsec/rasp/command_injection.js +3 -3
- package/packages/dd-trace/src/appsec/rasp/fs-plugin.js +4 -4
- package/packages/dd-trace/src/appsec/rasp/index.js +2 -2
- package/packages/dd-trace/src/appsec/rasp/lfi.js +5 -5
- package/packages/dd-trace/src/appsec/rasp/sql_injection.js +2 -2
- package/packages/dd-trace/src/appsec/rasp/ssrf.js +1 -1
- package/packages/dd-trace/src/appsec/rasp/utils.js +4 -4
- package/packages/dd-trace/src/appsec/rc-products.js +1 -1
- package/packages/dd-trace/src/appsec/remote_config.js +3 -3
- package/packages/dd-trace/src/appsec/reporter.js +11 -11
- package/packages/dd-trace/src/appsec/rule_manager.js +1 -1
- package/packages/dd-trace/src/appsec/sdk/index.js +1 -1
- package/packages/dd-trace/src/appsec/sdk/set_user.js +2 -2
- package/packages/dd-trace/src/appsec/sdk/track_event.js +7 -7
- package/packages/dd-trace/src/appsec/sdk/user_blocking.js +1 -1
- package/packages/dd-trace/src/appsec/sdk/utils.js +1 -1
- package/packages/dd-trace/src/appsec/stack_trace.js +5 -5
- package/packages/dd-trace/src/appsec/telemetry/common.js +3 -3
- package/packages/dd-trace/src/appsec/telemetry/index.js +5 -5
- package/packages/dd-trace/src/appsec/telemetry/rasp.js +3 -3
- package/packages/dd-trace/src/appsec/telemetry/user.js +4 -4
- package/packages/dd-trace/src/appsec/telemetry/waf.js +3 -3
- package/packages/dd-trace/src/appsec/user_tracking.js +7 -7
- package/packages/dd-trace/src/appsec/waf/diagnostics.js +2 -2
- package/packages/dd-trace/src/appsec/waf/index.js +1 -1
- package/packages/dd-trace/src/appsec/waf/waf_context_wrapper.js +2 -2
- package/packages/dd-trace/src/azure_metadata.js +16 -9
- package/packages/dd-trace/src/baggage.js +1 -1
- package/packages/dd-trace/src/ci-visibility/coverage-report-discovery.js +82 -0
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/index.js +5 -5
- package/packages/dd-trace/src/ci-visibility/dynamic-instrumentation/worker/index.js +9 -9
- package/packages/dd-trace/src/ci-visibility/early-flake-detection/get-known-tests.js +9 -9
- package/packages/dd-trace/src/ci-visibility/exporters/agent-proxy/index.js +8 -7
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/coverage-writer.js +4 -3
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/di-logs-writer.js +5 -3
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/index.js +2 -0
- package/packages/dd-trace/src/ci-visibility/exporters/agentless/writer.js +4 -3
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +37 -11
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +22 -22
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +20 -1
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/writer.js +1 -1
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +8 -8
- package/packages/dd-trace/src/ci-visibility/log-submission/log-submission-plugin.js +3 -3
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +17 -12
- package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +107 -0
- package/packages/dd-trace/src/ci-visibility/telemetry.js +38 -2
- package/packages/dd-trace/src/ci-visibility/test-api-manual/test-api-manual-plugin.js +1 -1
- package/packages/dd-trace/src/ci-visibility/test-management/get-test-management-tests.js +50 -7
- package/packages/dd-trace/src/ci-visibility/test-optimization-cache.js +61 -0
- package/packages/dd-trace/src/config/defaults.js +1 -1
- package/packages/dd-trace/src/config/git_properties.js +1 -1
- package/packages/dd-trace/src/config/helper.js +2 -2
- package/packages/dd-trace/src/config/index.js +612 -622
- package/packages/dd-trace/src/config/remote_config.js +1 -1
- package/packages/dd-trace/src/config/stable.js +2 -2
- package/packages/dd-trace/src/config/supported-configurations.json +1 -0
- package/packages/dd-trace/src/constants.js +3 -3
- package/packages/dd-trace/src/crashtracking/crashtracker.js +6 -6
- package/packages/dd-trace/src/datastreams/checkpointer.js +1 -1
- package/packages/dd-trace/src/datastreams/context.js +1 -1
- package/packages/dd-trace/src/datastreams/encoding.js +1 -1
- package/packages/dd-trace/src/datastreams/fnv.js +1 -1
- package/packages/dd-trace/src/datastreams/index.js +8 -8
- package/packages/dd-trace/src/datastreams/pathway.js +5 -3
- package/packages/dd-trace/src/datastreams/processor.js +14 -12
- package/packages/dd-trace/src/datastreams/schemas/schema_builder.js +27 -25
- package/packages/dd-trace/src/datastreams/schemas/schema_sampler.js +1 -1
- package/packages/dd-trace/src/datastreams/size.js +3 -3
- package/packages/dd-trace/src/datastreams/writer.js +3 -3
- package/packages/dd-trace/src/debugger/config.js +2 -1
- package/packages/dd-trace/src/debugger/constants.js +7 -0
- package/packages/dd-trace/src/debugger/devtools_client/breakpoints.js +14 -10
- package/packages/dd-trace/src/debugger/devtools_client/condition.js +2 -2
- package/packages/dd-trace/src/debugger/devtools_client/config.js +4 -5
- package/packages/dd-trace/src/debugger/devtools_client/defaults.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/index.js +32 -25
- package/packages/dd-trace/src/debugger/devtools_client/inspector_promises_polyfill.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/log.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/send.js +54 -10
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/collector.js +94 -37
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/index.js +4 -4
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/processor.js +7 -7
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/redaction.js +2 -2
- package/packages/dd-trace/src/debugger/devtools_client/snapshot/symbols.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/snapshot-pruner.js +1 -1
- package/packages/dd-trace/src/debugger/devtools_client/source-maps.js +10 -1
- package/packages/dd-trace/src/debugger/devtools_client/state.js +65 -8
- package/packages/dd-trace/src/debugger/devtools_client/status.js +9 -8
- package/packages/dd-trace/src/debugger/index.js +95 -37
- package/packages/dd-trace/src/dogstatsd.js +14 -9
- package/packages/dd-trace/src/encode/0.4.js +7 -6
- package/packages/dd-trace/src/encode/agentless-ci-visibility.js +8 -8
- package/packages/dd-trace/src/encode/coverage-ci-visibility.js +3 -3
- package/packages/dd-trace/src/encode/span-stats.js +2 -2
- package/packages/dd-trace/src/encode/tags-processors.js +1 -1
- package/packages/dd-trace/src/exporters/agent/index.js +1 -1
- package/packages/dd-trace/src/exporters/agent/writer.js +2 -2
- package/packages/dd-trace/src/exporters/common/agents.js +1 -1
- package/packages/dd-trace/src/exporters/common/buffering-exporter.js +2 -2
- package/packages/dd-trace/src/exporters/common/docker.js +11 -7
- package/packages/dd-trace/src/exporters/common/request.js +41 -21
- package/packages/dd-trace/src/exporters/common/url-to-http-options-polyfill.js +2 -2
- package/packages/dd-trace/src/exporters/common/writer.js +2 -0
- package/packages/dd-trace/src/exporters/span-stats/index.js +1 -1
- package/packages/dd-trace/src/exporters/span-stats/writer.js +3 -3
- package/packages/dd-trace/src/external-logger/src/index.js +4 -4
- package/packages/dd-trace/src/flare/index.js +3 -3
- package/packages/dd-trace/src/guardrails/telemetry.js +1 -1
- package/packages/dd-trace/src/heap_snapshots.js +1 -1
- package/packages/dd-trace/src/id.js +2 -2
- package/packages/dd-trace/src/iitm.js +1 -1
- package/packages/dd-trace/src/lambda/context.js +27 -0
- package/packages/dd-trace/src/lambda/handler.js +6 -19
- package/packages/dd-trace/src/lambda/runtime/errors.js +1 -1
- package/packages/dd-trace/src/lambda/runtime/ritm.js +3 -3
- package/packages/dd-trace/src/llmobs/constants/tags.js +1 -1
- package/packages/dd-trace/src/llmobs/constants/text.js +1 -1
- package/packages/dd-trace/src/llmobs/constants/writers.js +1 -1
- package/packages/dd-trace/src/llmobs/index.js +2 -4
- package/packages/dd-trace/src/llmobs/noop.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/ai/index.js +8 -8
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/anthropic.js +5 -5
- package/packages/dd-trace/src/llmobs/plugins/base.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +8 -8
- package/packages/dd-trace/src/llmobs/plugins/genai/index.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/genai/util.js +15 -15
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/chat_model.js +2 -2
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/index.js +5 -5
- package/packages/dd-trace/src/llmobs/plugins/langchain/handlers/vectorstore.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +3 -3
- package/packages/dd-trace/src/llmobs/plugins/openai/constants.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/openai/index.js +17 -17
- package/packages/dd-trace/src/llmobs/plugins/openai/utils.js +3 -3
- package/packages/dd-trace/src/llmobs/plugins/vertexai.js +6 -6
- package/packages/dd-trace/src/llmobs/sdk.js +11 -11
- package/packages/dd-trace/src/llmobs/span_processor.js +6 -6
- package/packages/dd-trace/src/llmobs/tagger.js +4 -4
- package/packages/dd-trace/src/llmobs/telemetry.js +8 -8
- package/packages/dd-trace/src/llmobs/util.js +1 -1
- package/packages/dd-trace/src/llmobs/writers/base.js +9 -9
- package/packages/dd-trace/src/llmobs/writers/evaluations.js +5 -5
- package/packages/dd-trace/src/llmobs/writers/spans.js +3 -3
- package/packages/dd-trace/src/llmobs/writers/util.js +1 -1
- package/packages/dd-trace/src/log/channels.js +2 -2
- package/packages/dd-trace/src/log/index.js +2 -2
- package/packages/dd-trace/src/log/log.js +1 -1
- package/packages/dd-trace/src/log/writer.js +2 -6
- package/packages/dd-trace/src/noop/span.js +2 -2
- package/packages/dd-trace/src/openfeature/constants/constants.js +1 -1
- package/packages/dd-trace/src/openfeature/flagging_provider.js +4 -4
- package/packages/dd-trace/src/openfeature/index.js +2 -2
- package/packages/dd-trace/src/openfeature/noop.js +3 -3
- package/packages/dd-trace/src/openfeature/remote_config.js +1 -1
- package/packages/dd-trace/src/openfeature/writers/base.js +12 -12
- package/packages/dd-trace/src/openfeature/writers/exposures.js +10 -10
- package/packages/dd-trace/src/openfeature/writers/util.js +1 -1
- package/packages/dd-trace/src/opentelemetry/context_manager.js +48 -29
- package/packages/dd-trace/src/opentelemetry/logs/index.js +2 -2
- package/packages/dd-trace/src/opentelemetry/logs/logger_provider.js +2 -2
- package/packages/dd-trace/src/opentelemetry/logs/otlp_transformer.js +10 -10
- package/packages/dd-trace/src/opentelemetry/metrics/constants.js +3 -3
- package/packages/dd-trace/src/opentelemetry/metrics/index.js +2 -2
- package/packages/dd-trace/src/opentelemetry/metrics/instruments.js +3 -3
- package/packages/dd-trace/src/opentelemetry/metrics/meter.js +1 -1
- package/packages/dd-trace/src/opentelemetry/metrics/otlp_transformer.js +11 -11
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +18 -18
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_http_exporter_base.js +6 -6
- package/packages/dd-trace/src/opentelemetry/otlp/otlp_transformer_base.js +10 -7
- package/packages/dd-trace/src/opentelemetry/otlp/protobuf_loader.js +3 -3
- package/packages/dd-trace/src/opentelemetry/span.js +8 -8
- package/packages/dd-trace/src/opentelemetry/span_context.js +1 -1
- package/packages/dd-trace/src/opentelemetry/span_processor.js +1 -1
- package/packages/dd-trace/src/opentelemetry/tracer.js +4 -4
- package/packages/dd-trace/src/opentracing/propagation/log.js +2 -2
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +14 -12
- package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +2 -0
- package/packages/dd-trace/src/opentracing/span.js +20 -20
- package/packages/dd-trace/src/opentracing/span_context.js +3 -3
- package/packages/dd-trace/src/opentracing/tracer.js +3 -3
- package/packages/dd-trace/src/payload-tagging/config/index.js +1 -1
- package/packages/dd-trace/src/payload-tagging/index.js +1 -1
- package/packages/dd-trace/src/payload-tagging/tagging.js +2 -2
- package/packages/dd-trace/src/plugin_manager.js +6 -6
- package/packages/dd-trace/src/plugins/apollo.js +4 -4
- package/packages/dd-trace/src/plugins/ci_plugin.js +164 -37
- package/packages/dd-trace/src/plugins/database.js +1 -1
- package/packages/dd-trace/src/plugins/index.js +1 -1
- package/packages/dd-trace/src/plugins/log_plugin.js +2 -2
- package/packages/dd-trace/src/plugins/outbound.js +9 -8
- package/packages/dd-trace/src/plugins/plugin.js +17 -7
- package/packages/dd-trace/src/plugins/producer.js +6 -5
- package/packages/dd-trace/src/plugins/tracing.js +37 -8
- package/packages/dd-trace/src/plugins/util/ci.js +40 -40
- package/packages/dd-trace/src/plugins/util/env.js +2 -2
- package/packages/dd-trace/src/plugins/util/git-cache.js +2 -2
- package/packages/dd-trace/src/plugins/util/git.js +46 -47
- package/packages/dd-trace/src/plugins/util/inferred_proxy.js +6 -6
- package/packages/dd-trace/src/plugins/util/ip_extractor.js +3 -3
- package/packages/dd-trace/src/plugins/util/llm.js +1 -1
- package/packages/dd-trace/src/plugins/util/stacktrace.js +3 -3
- package/packages/dd-trace/src/plugins/util/tags.js +1 -1
- package/packages/dd-trace/src/plugins/util/test.js +49 -41
- package/packages/dd-trace/src/plugins/util/url.js +1 -1
- package/packages/dd-trace/src/plugins/util/urlfilter.js +1 -1
- package/packages/dd-trace/src/plugins/util/user-provided-git.js +2 -2
- package/packages/dd-trace/src/plugins/util/web.js +13 -12
- package/packages/dd-trace/src/priority_sampler.js +4 -4
- package/packages/dd-trace/src/process-tags/index.js +2 -2
- package/packages/dd-trace/src/profiler.js +1 -1
- package/packages/dd-trace/src/profiling/config.js +14 -22
- package/packages/dd-trace/src/profiling/constants.js +2 -2
- package/packages/dd-trace/src/profiling/exporter_cli.js +3 -3
- package/packages/dd-trace/src/profiling/exporters/agent.js +28 -29
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +8 -8
- package/packages/dd-trace/src/profiling/index.js +1 -1
- package/packages/dd-trace/src/profiling/libuv-size.js +1 -1
- package/packages/dd-trace/src/profiling/loggers/console.js +1 -1
- package/packages/dd-trace/src/profiling/profiler.js +23 -23
- package/packages/dd-trace/src/profiling/profilers/event_plugins/event.js +1 -1
- package/packages/dd-trace/src/profiling/profilers/event_plugins/fs.js +3 -3
- package/packages/dd-trace/src/profiling/profilers/events.js +27 -19
- package/packages/dd-trace/src/profiling/profilers/shared.js +2 -2
- package/packages/dd-trace/src/profiling/profilers/wall.js +4 -4
- package/packages/dd-trace/src/profiling/tagger.js +1 -1
- package/packages/dd-trace/src/profiling/webspan-utils.js +2 -2
- package/packages/dd-trace/src/proxy.js +13 -13
- package/packages/dd-trace/src/remote_config/apply_states.js +1 -1
- package/packages/dd-trace/src/remote_config/index.js +15 -15
- package/packages/dd-trace/src/remote_config/scheduler.js +1 -1
- package/packages/dd-trace/src/ritm.js +1 -1
- package/packages/dd-trace/src/runtime_metrics/index.js +2 -2
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +3 -3
- package/packages/dd-trace/src/serverless.js +1 -1
- package/packages/dd-trace/src/service-naming/extra-services.js +1 -1
- package/packages/dd-trace/src/service-naming/index.js +1 -1
- package/packages/dd-trace/src/service-naming/schemas/v0/graphql.js +3 -3
- package/packages/dd-trace/src/service-naming/schemas/v0/messaging.js +25 -25
- package/packages/dd-trace/src/service-naming/schemas/v0/serverless.js +3 -3
- package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +18 -18
- package/packages/dd-trace/src/service-naming/schemas/v0/web.js +23 -23
- package/packages/dd-trace/src/service-naming/schemas/v0/websocket.js +9 -9
- package/packages/dd-trace/src/service-naming/schemas/v1/graphql.js +3 -3
- package/packages/dd-trace/src/service-naming/schemas/v1/messaging.js +21 -21
- package/packages/dd-trace/src/service-naming/schemas/v1/serverless.js +3 -3
- package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +17 -17
- package/packages/dd-trace/src/service-naming/schemas/v1/web.js +23 -23
- package/packages/dd-trace/src/service-naming/schemas/v1/websocket.js +9 -9
- package/packages/dd-trace/src/span_format.js +4 -4
- package/packages/dd-trace/src/span_sampler.js +1 -1
- package/packages/dd-trace/src/span_stats.js +11 -11
- package/packages/dd-trace/src/spanleak.js +1 -1
- package/packages/dd-trace/src/standalone/index.js +1 -1
- package/packages/dd-trace/src/standalone/product.js +2 -2
- package/packages/dd-trace/src/standalone/tracesource.js +1 -1
- package/packages/dd-trace/src/startup-log.js +3 -2
- package/packages/dd-trace/src/tagger.js +3 -1
- package/packages/dd-trace/src/telemetry/dependencies.js +4 -4
- package/packages/dd-trace/src/telemetry/endpoints.js +4 -4
- package/packages/dd-trace/src/telemetry/index.js +1 -1
- package/packages/dd-trace/src/telemetry/logs/index.js +2 -2
- package/packages/dd-trace/src/telemetry/logs/log-collector.js +2 -2
- package/packages/dd-trace/src/telemetry/metrics.js +6 -6
- package/packages/dd-trace/src/telemetry/send-data.js +5 -5
- package/packages/dd-trace/src/telemetry/telemetry.js +10 -10
- package/packages/dd-trace/src/tracer.js +3 -2
- package/packages/dd-trace/src/util.js +1 -1
- package/scripts/preinstall.js +1 -1
- package/vendor/dist/@datadog/sketches-js/index.js +1 -1
- package/vendor/dist/@datadog/source-map/index.js +1 -1
- package/vendor/dist/@isaacs/ttlcache/index.js +1 -1
- package/vendor/dist/@opentelemetry/core/index.js +1 -1
- package/vendor/dist/@opentelemetry/resources/index.js +1 -1
- package/vendor/dist/astring/index.js +1 -1
- package/vendor/dist/crypto-randomuuid/index.js +1 -1
- package/vendor/dist/escape-string-regexp/index.js +1 -1
- package/vendor/dist/esquery/index.js +1 -1
- package/vendor/dist/ignore/index.js +1 -1
- package/vendor/dist/istanbul-lib-coverage/index.js +1 -1
- package/vendor/dist/jest-docblock/index.js +1 -1
- package/vendor/dist/jsonpath-plus/index.js +1 -1
- package/vendor/dist/limiter/index.js +1 -1
- package/vendor/dist/lodash.sortby/index.js +1 -1
- package/vendor/dist/lru-cache/index.js +1 -1
- package/vendor/dist/meriyah/index.js +1 -1
- package/vendor/dist/module-details-from-path/index.js +1 -1
- package/vendor/dist/mutexify/promise/index.js +1 -1
- package/vendor/dist/opentracing/index.js +1 -1
- package/vendor/dist/path-to-regexp/index.js +1 -1
- package/vendor/dist/pprof-format/index.js +1 -1
- package/vendor/dist/protobufjs/index.js +1 -1
- package/vendor/dist/protobufjs/minimal/index.js +1 -1
- package/vendor/dist/retry/index.js +1 -1
- package/vendor/dist/rfdc/index.js +1 -1
- package/vendor/dist/semifies/index.js +1 -1
- package/vendor/dist/shell-quote/index.js +1 -1
- package/vendor/dist/source-map/index.js +1 -1
- package/vendor/dist/source-map/lib/util/index.js +1 -1
- package/vendor/dist/tlhunter-sorted-set/index.js +1 -1
- package/vendor/dist/ttl-set/index.js +1 -1
- package/packages/datadog-plugin-prisma/src/client.js +0 -60
- package/packages/datadog-plugin-prisma/src/engine.js +0 -81
|
@@ -7,23 +7,26 @@ const {
|
|
|
7
7
|
getCoveredFilenamesFromCoverage,
|
|
8
8
|
JEST_WORKER_TRACE_PAYLOAD_CODE,
|
|
9
9
|
JEST_WORKER_COVERAGE_PAYLOAD_CODE,
|
|
10
|
+
JEST_WORKER_TELEMETRY_PAYLOAD_CODE,
|
|
10
11
|
getTestLineStart,
|
|
11
12
|
getTestSuitePath,
|
|
12
13
|
getTestParametersString,
|
|
13
14
|
getIsFaultyEarlyFlakeDetection,
|
|
14
15
|
JEST_WORKER_LOGS_PAYLOAD_CODE,
|
|
15
16
|
getTestEndLine,
|
|
16
|
-
isModifiedTest
|
|
17
|
+
isModifiedTest,
|
|
17
18
|
} = require('../../dd-trace/src/plugins/util/test')
|
|
18
19
|
const {
|
|
20
|
+
SEED_SUFFIX_RE,
|
|
19
21
|
getFormattedJestTestParameters,
|
|
20
22
|
getJestTestName,
|
|
21
|
-
getJestSuitesToRun
|
|
23
|
+
getJestSuitesToRun,
|
|
22
24
|
} = require('../../datadog-plugin-jest/src/util')
|
|
23
25
|
const { addHook, channel } = require('./helpers/instrument')
|
|
24
26
|
|
|
25
27
|
const testSessionStartCh = channel('ci:jest:session:start')
|
|
26
28
|
const testSessionFinishCh = channel('ci:jest:session:finish')
|
|
29
|
+
const codeCoverageReportCh = channel('ci:jest:coverage-report')
|
|
27
30
|
|
|
28
31
|
const testSessionConfigurationCh = channel('ci:jest:session:configuration')
|
|
29
32
|
|
|
@@ -34,6 +37,7 @@ const testSuiteErrorCh = channel('ci:jest:test-suite:error')
|
|
|
34
37
|
const workerReportTraceCh = channel('ci:jest:worker-report:trace')
|
|
35
38
|
const workerReportCoverageCh = channel('ci:jest:worker-report:coverage')
|
|
36
39
|
const workerReportLogsCh = channel('ci:jest:worker-report:logs')
|
|
40
|
+
const workerReportTelemetryCh = channel('ci:jest:worker-report:telemetry')
|
|
37
41
|
|
|
38
42
|
const testSuiteCodeCoverageCh = channel('ci:jest:test-suite:code-coverage')
|
|
39
43
|
|
|
@@ -54,6 +58,7 @@ const itrSkippedSuitesCh = channel('ci:jest:itr:skipped-suites')
|
|
|
54
58
|
// Message sent by jest's main process to workers to run a test suite (=test file)
|
|
55
59
|
// https://github.com/jestjs/jest/blob/1d682f21c7a35da4d3ab3a1436a357b980ebd0fa/packages/jest-worker/src/types.ts#L37
|
|
56
60
|
const CHILD_MESSAGE_CALL = 1
|
|
61
|
+
|
|
57
62
|
// Maximum time we'll wait for the tracer to flush
|
|
58
63
|
const FLUSH_TIMEOUT = 10_000
|
|
59
64
|
|
|
@@ -284,7 +289,7 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
284
289
|
return {
|
|
285
290
|
attemptToFix: [],
|
|
286
291
|
disabled: [],
|
|
287
|
-
quarantined: []
|
|
292
|
+
quarantined: [],
|
|
288
293
|
}
|
|
289
294
|
}
|
|
290
295
|
let testManagementTestsForSuite = testManagementTests
|
|
@@ -297,10 +302,10 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
297
302
|
const result = {
|
|
298
303
|
attemptToFix: [],
|
|
299
304
|
disabled: [],
|
|
300
|
-
quarantined: []
|
|
305
|
+
quarantined: [],
|
|
301
306
|
}
|
|
302
307
|
|
|
303
|
-
|
|
308
|
+
for (const [testName, { properties }] of Object.entries(testManagementTestsForSuite)) {
|
|
304
309
|
if (properties?.attempt_to_fix) {
|
|
305
310
|
result.attemptToFix.push(testName)
|
|
306
311
|
}
|
|
@@ -310,7 +315,7 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
310
315
|
if (properties?.quarantined) {
|
|
311
316
|
result.quarantined.push(testName)
|
|
312
317
|
}
|
|
313
|
-
}
|
|
318
|
+
}
|
|
314
319
|
|
|
315
320
|
return result
|
|
316
321
|
}
|
|
@@ -319,7 +324,7 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
319
324
|
retryTest ({
|
|
320
325
|
jestEvent,
|
|
321
326
|
retryCount,
|
|
322
|
-
retryType
|
|
327
|
+
retryType,
|
|
323
328
|
}) {
|
|
324
329
|
const { testName, fn, timeout } = jestEvent
|
|
325
330
|
for (let retryIndex = 0; retryIndex < retryCount; retryIndex++) {
|
|
@@ -428,7 +433,7 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
428
433
|
isDisabled,
|
|
429
434
|
isQuarantined,
|
|
430
435
|
isModified,
|
|
431
|
-
testSuiteAbsolutePath: this.testSuiteAbsolutePath
|
|
436
|
+
testSuiteAbsolutePath: this.testSuiteAbsolutePath,
|
|
432
437
|
}
|
|
433
438
|
testContexts.set(event.test, ctx)
|
|
434
439
|
|
|
@@ -475,7 +480,7 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
475
480
|
this.retryTest({
|
|
476
481
|
jestEvent: event,
|
|
477
482
|
retryCount: testManagementAttemptToFixRetries,
|
|
478
|
-
retryType: 'Test Management (Attempt to Fix)'
|
|
483
|
+
retryType: 'Test Management (Attempt to Fix)',
|
|
479
484
|
})
|
|
480
485
|
}
|
|
481
486
|
if (!isAttemptToFix && this.isImpactedTestsEnabled) {
|
|
@@ -494,7 +499,7 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
494
499
|
this.retryTest({
|
|
495
500
|
jestEvent: event,
|
|
496
501
|
retryCount: earlyFlakeDetectionNumRetries,
|
|
497
|
-
retryType: 'Impacted tests'
|
|
502
|
+
retryType: 'Impacted tests',
|
|
498
503
|
})
|
|
499
504
|
}
|
|
500
505
|
}
|
|
@@ -507,13 +512,14 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
507
512
|
this.retryTest({
|
|
508
513
|
jestEvent: event,
|
|
509
514
|
retryCount: earlyFlakeDetectionNumRetries,
|
|
510
|
-
retryType: 'Early flake detection'
|
|
515
|
+
retryType: 'Early flake detection',
|
|
511
516
|
})
|
|
512
517
|
}
|
|
513
518
|
}
|
|
514
519
|
}
|
|
515
520
|
}
|
|
516
521
|
if (event.name === 'test_done') {
|
|
522
|
+
const originalError = event.test?.errors?.[0]
|
|
517
523
|
let status = 'pass'
|
|
518
524
|
if (event.test.errors && event.test.errors.length) {
|
|
519
525
|
status = 'fail'
|
|
@@ -560,8 +566,8 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
560
566
|
|
|
561
567
|
let isEfdRetry = false
|
|
562
568
|
// We'll store the test statuses of the retries
|
|
569
|
+
const testName = getJestTestName(event.test, this.getShouldStripSeedFromTestName())
|
|
563
570
|
if (this.isKnownTestsEnabled) {
|
|
564
|
-
const testName = getJestTestName(event.test, this.getShouldStripSeedFromTestName())
|
|
565
571
|
const isNewTest = retriedTestsToNumAttempts.has(testName)
|
|
566
572
|
if (isNewTest) {
|
|
567
573
|
if (newTestsTestStatuses.has(testName)) {
|
|
@@ -576,18 +582,27 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
576
582
|
const promises = {}
|
|
577
583
|
const numRetries = this.global[RETRY_TIMES]
|
|
578
584
|
const numTestExecutions = event.test?.invocations
|
|
579
|
-
const
|
|
585
|
+
const willBeRetriedByFailedTestReplay = numRetries > 0 && numTestExecutions - 1 < numRetries
|
|
580
586
|
const mightHitBreakpoint = this.isDiEnabled && numTestExecutions >= 2
|
|
581
587
|
|
|
582
588
|
const ctx = testContexts.get(event.test)
|
|
583
589
|
|
|
590
|
+
const finalStatus = this.getFinalStatus(testName,
|
|
591
|
+
status,
|
|
592
|
+
!!ctx?.isNew,
|
|
593
|
+
!!ctx?.isModified,
|
|
594
|
+
isEfdRetry,
|
|
595
|
+
isAttemptToFix,
|
|
596
|
+
numTestExecutions)
|
|
597
|
+
|
|
584
598
|
if (status === 'fail') {
|
|
585
|
-
const shouldSetProbe = this.isDiEnabled &&
|
|
599
|
+
const shouldSetProbe = this.isDiEnabled && willBeRetriedByFailedTestReplay && numTestExecutions === 1
|
|
586
600
|
testErrCh.publish({
|
|
587
601
|
...ctx.currentStore,
|
|
588
|
-
error: formatJestError(
|
|
602
|
+
error: formatJestError(originalError),
|
|
589
603
|
shouldSetProbe,
|
|
590
|
-
promises
|
|
604
|
+
promises,
|
|
605
|
+
finalStatus,
|
|
591
606
|
})
|
|
592
607
|
}
|
|
593
608
|
|
|
@@ -613,7 +628,8 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
613
628
|
attemptToFixPassed,
|
|
614
629
|
failedAllTests,
|
|
615
630
|
attemptToFixFailed,
|
|
616
|
-
isAtrRetry
|
|
631
|
+
isAtrRetry,
|
|
632
|
+
finalStatus,
|
|
617
633
|
})
|
|
618
634
|
|
|
619
635
|
if (promises.isProbeReady) {
|
|
@@ -635,13 +651,102 @@ function getWrappedEnvironment (BaseEnvironment, jestVersion) {
|
|
|
635
651
|
testSourceFile: this.testSourceFile,
|
|
636
652
|
displayName: this.displayName,
|
|
637
653
|
frameworkVersion: jestVersion,
|
|
638
|
-
testStartLine: getTestLineStart(event.test.asyncError, this.testSuite)
|
|
654
|
+
testStartLine: getTestLineStart(event.test.asyncError, this.testSuite),
|
|
639
655
|
},
|
|
640
|
-
isDisabled: this.testManagementTestsForThisSuite?.disabled?.includes(testName)
|
|
656
|
+
isDisabled: this.testManagementTestsForThisSuite?.disabled?.includes(testName),
|
|
641
657
|
})
|
|
642
658
|
}
|
|
643
659
|
}
|
|
644
660
|
|
|
661
|
+
getEfdResult ({ testName, isNewTest, isModifiedTest, isEfdRetry, numberOfExecutedRetries }) {
|
|
662
|
+
const isEfdEnabled = this.isEarlyFlakeDetectionEnabled
|
|
663
|
+
const isEfdActive = isEfdEnabled && (isNewTest || isModifiedTest)
|
|
664
|
+
const isLastEfdRetry = isEfdRetry && numberOfExecutedRetries >= (earlyFlakeDetectionNumRetries + 1)
|
|
665
|
+
const isFinalEfdTestExecution = isEfdActive && isLastEfdRetry
|
|
666
|
+
|
|
667
|
+
let finalStatus
|
|
668
|
+
if (isEfdActive && isFinalEfdTestExecution) {
|
|
669
|
+
// For EFD: The framework reports 'pass' if ANY attempt passed (flaky but not failing)
|
|
670
|
+
const testStatuses = newTestsTestStatuses.get(testName)
|
|
671
|
+
finalStatus = testStatuses && testStatuses.includes('pass') ? 'pass' : 'fail'
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
return { isEfdEnabled, isEfdActive, isFinalEfdTestExecution, finalStatus }
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
getAtrResult ({ status, isEfdRetry, isAttemptToFix, numberOfTestInvocations }) {
|
|
678
|
+
const isAtrEnabled =
|
|
679
|
+
this.isFlakyTestRetriesEnabled &&
|
|
680
|
+
!isEfdRetry &&
|
|
681
|
+
!isAttemptToFix &&
|
|
682
|
+
Number.isFinite(this.global[RETRY_TIMES])
|
|
683
|
+
const isLastAtrRetry =
|
|
684
|
+
status === 'pass' || numberOfTestInvocations >= (Number(this.global[RETRY_TIMES]) + 1)
|
|
685
|
+
const isFinalAtrTestExecution = isAtrEnabled && isLastAtrRetry
|
|
686
|
+
|
|
687
|
+
// For ATR: The last execution's status is what the framework reports
|
|
688
|
+
return { isAtrEnabled, isFinalAtrTestExecution, finalStatus: status }
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
getAttemptToFixResult ({ testName, isAttemptToFix, numberOfExecutedRetries }) {
|
|
692
|
+
const isAttemptToFixEnabled =
|
|
693
|
+
this.isTestManagementTestsEnabled &&
|
|
694
|
+
isAttemptToFix &&
|
|
695
|
+
Number.isFinite(testManagementAttemptToFixRetries)
|
|
696
|
+
const isFinalAttemptToFixExecution = isAttemptToFixEnabled &&
|
|
697
|
+
numberOfExecutedRetries >= (testManagementAttemptToFixRetries + 1)
|
|
698
|
+
|
|
699
|
+
let finalStatus
|
|
700
|
+
if (isAttemptToFixEnabled && isFinalAttemptToFixExecution) {
|
|
701
|
+
// For Attempt to Fix: 'pass' only if ALL attempts passed, 'fail' if ANY failed
|
|
702
|
+
const testStatuses = attemptToFixRetriedTestsStatuses.get(testName)
|
|
703
|
+
finalStatus = testStatuses && testStatuses.every(status => status === 'pass') ? 'pass' : 'fail'
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
return { isAttemptToFixEnabled, isFinalAttemptToFixExecution, finalStatus }
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
getFinalStatus (testName, status, isNewTest, isModifiedTest, isEfdRetry, isAttemptToFix, numberOfTestInvocations) {
|
|
710
|
+
const numberOfExecutedRetries = retriedTestsToNumAttempts.get(testName) ?? 0
|
|
711
|
+
|
|
712
|
+
const efdResult = this.getEfdResult({
|
|
713
|
+
testName,
|
|
714
|
+
isNewTest,
|
|
715
|
+
isModifiedTest,
|
|
716
|
+
isEfdRetry,
|
|
717
|
+
numberOfExecutedRetries,
|
|
718
|
+
})
|
|
719
|
+
const atrResult = this.getAtrResult({ status, isEfdRetry, isAttemptToFix, numberOfTestInvocations })
|
|
720
|
+
const attemptToFixResult = this.getAttemptToFixResult({
|
|
721
|
+
testName,
|
|
722
|
+
isAttemptToFix,
|
|
723
|
+
numberOfExecutedRetries,
|
|
724
|
+
})
|
|
725
|
+
|
|
726
|
+
// When no retry features are active, every test execution is final
|
|
727
|
+
const noRetryFeaturesActive =
|
|
728
|
+
!efdResult.isEfdActive &&
|
|
729
|
+
!atrResult.isAtrEnabled &&
|
|
730
|
+
!attemptToFixResult.isAttemptToFixEnabled
|
|
731
|
+
const isFinalTestExecution = noRetryFeaturesActive ||
|
|
732
|
+
efdResult.isFinalEfdTestExecution ||
|
|
733
|
+
atrResult.isFinalAtrTestExecution ||
|
|
734
|
+
attemptToFixResult.isFinalAttemptToFixExecution
|
|
735
|
+
|
|
736
|
+
if (!isFinalTestExecution) {
|
|
737
|
+
return
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
// If the test is quarantined, regardless of its actual execution result,
|
|
741
|
+
// the final status of its last execution should be reported as 'skip'.
|
|
742
|
+
if (this.isTestManagementTestsEnabled &&
|
|
743
|
+
this.testManagementTestsForThisSuite?.quarantined?.includes(testName)) {
|
|
744
|
+
return 'skip'
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
return efdResult.finalStatus || attemptToFixResult.finalStatus || atrResult.finalStatus
|
|
748
|
+
}
|
|
749
|
+
|
|
645
750
|
teardown () {
|
|
646
751
|
if (this._globalProxy?.propertyToValue) {
|
|
647
752
|
for (const [key] of this._globalProxy.propertyToValue) {
|
|
@@ -667,7 +772,7 @@ function getTestEnvironment (pkg, jestVersion) {
|
|
|
667
772
|
return wrappedTestEnvironment
|
|
668
773
|
}
|
|
669
774
|
return target[prop]
|
|
670
|
-
}
|
|
775
|
+
},
|
|
671
776
|
})
|
|
672
777
|
}
|
|
673
778
|
return getWrappedEnvironment(pkg, jestVersion)
|
|
@@ -676,9 +781,7 @@ function getTestEnvironment (pkg, jestVersion) {
|
|
|
676
781
|
function applySuiteSkipping (originalTests, rootDir, frameworkVersion) {
|
|
677
782
|
const jestSuitesToRun = getJestSuitesToRun(skippableSuites, originalTests, rootDir || process.cwd())
|
|
678
783
|
hasFilteredSkippableSuites = true
|
|
679
|
-
log.debug(
|
|
680
|
-
() => `${jestSuitesToRun.suitesToRun.length} out of ${originalTests.length} suites are going to run.`
|
|
681
|
-
)
|
|
784
|
+
log.debug('%d out of %d suites are going to run.', jestSuitesToRun.suitesToRun.length, originalTests.length)
|
|
682
785
|
hasUnskippableSuites = jestSuitesToRun.hasUnskippableSuites
|
|
683
786
|
hasForcedToRunSuites = jestSuitesToRun.hasForcedToRunSuites
|
|
684
787
|
|
|
@@ -692,17 +795,17 @@ function applySuiteSkipping (originalTests, rootDir, frameworkVersion) {
|
|
|
692
795
|
|
|
693
796
|
addHook({
|
|
694
797
|
name: 'jest-environment-node',
|
|
695
|
-
versions: ['>=24.8.0']
|
|
798
|
+
versions: ['>=24.8.0'],
|
|
696
799
|
}, getTestEnvironment)
|
|
697
800
|
|
|
698
801
|
addHook({
|
|
699
802
|
name: 'jest-environment-jsdom',
|
|
700
|
-
versions: ['>=24.8.0']
|
|
803
|
+
versions: ['>=24.8.0'],
|
|
701
804
|
}, getTestEnvironment)
|
|
702
805
|
|
|
703
806
|
addHook({
|
|
704
807
|
name: '@happy-dom/jest-environment',
|
|
705
|
-
versions: ['>=10.0.0']
|
|
808
|
+
versions: ['>=10.0.0'],
|
|
706
809
|
}, getTestEnvironment)
|
|
707
810
|
|
|
708
811
|
function getWrappedScheduleTests (scheduleTests, frameworkVersion) {
|
|
@@ -856,7 +959,7 @@ function getCliWrapper (isNewJestVersion) {
|
|
|
856
959
|
isTestManagementTestsEnabled = false
|
|
857
960
|
testManagementTests = {}
|
|
858
961
|
} else {
|
|
859
|
-
testManagementTests = receivedTestManagementTests
|
|
962
|
+
testManagementTests = receivedTestManagementTests || {}
|
|
860
963
|
}
|
|
861
964
|
} catch (err) {
|
|
862
965
|
log.error('Jest test management tests error', err)
|
|
@@ -892,8 +995,8 @@ function getCliWrapper (isNewJestVersion) {
|
|
|
892
995
|
numFailedTestSuites,
|
|
893
996
|
numFailedTests,
|
|
894
997
|
numTotalTests,
|
|
895
|
-
numTotalTestSuites
|
|
896
|
-
}
|
|
998
|
+
numTotalTestSuites,
|
|
999
|
+
},
|
|
897
1000
|
} = result
|
|
898
1001
|
|
|
899
1002
|
let testCodeCoverageLinesTotal
|
|
@@ -914,33 +1017,39 @@ function getCliWrapper (isNewJestVersion) {
|
|
|
914
1017
|
* The rationale behind is the following: you may still be able to block your CI pipeline by gating
|
|
915
1018
|
* on flakiness (the test will be considered flaky), but you may choose to unblock the pipeline too.
|
|
916
1019
|
*/
|
|
1020
|
+
let numEfdFailedTestsToIgnore = 0
|
|
917
1021
|
if (isEarlyFlakeDetectionEnabled) {
|
|
918
|
-
let numFailedTestsToIgnore = 0
|
|
919
1022
|
for (const testStatuses of newTestsTestStatuses.values()) {
|
|
920
1023
|
const { pass, fail } = getTestStats(testStatuses)
|
|
921
1024
|
if (pass > 0) { // as long as one passes, we'll consider the test passed
|
|
922
|
-
|
|
1025
|
+
numEfdFailedTestsToIgnore += fail
|
|
923
1026
|
}
|
|
924
1027
|
}
|
|
925
1028
|
// If every test that failed was an EFD retry, we'll consider the suite passed
|
|
926
|
-
if (
|
|
1029
|
+
if (numEfdFailedTestsToIgnore !== 0 && result.results.numFailedTests === numEfdFailedTestsToIgnore) {
|
|
927
1030
|
result.results.success = true
|
|
928
1031
|
}
|
|
929
1032
|
}
|
|
930
1033
|
|
|
1034
|
+
let numFailedQuarantinedTests = 0
|
|
1035
|
+
let numFailedQuarantinedOrDisabledAttemptedToFixTests = 0
|
|
931
1036
|
if (isTestManagementTestsEnabled) {
|
|
932
1037
|
const failedTests = result
|
|
933
1038
|
.results
|
|
934
1039
|
.testResults.flatMap(({ testResults, testFilePath: testSuiteAbsolutePath }) => (
|
|
935
1040
|
testResults.map(({ fullName: testName, status }) => (
|
|
936
|
-
{
|
|
1041
|
+
{
|
|
1042
|
+
// Strip @fast-check/jest seed suffix so the name matches what was reported via TEST_NAME
|
|
1043
|
+
testName: testSuiteAbsolutePathsWithFastCheck.has(testSuiteAbsolutePath)
|
|
1044
|
+
? testName.replace(SEED_SUFFIX_RE, '')
|
|
1045
|
+
: testName,
|
|
1046
|
+
testSuiteAbsolutePath,
|
|
1047
|
+
status,
|
|
1048
|
+
}
|
|
937
1049
|
))
|
|
938
1050
|
))
|
|
939
1051
|
.filter(({ status }) => status === 'failed')
|
|
940
1052
|
|
|
941
|
-
let numFailedQuarantinedTests = 0
|
|
942
|
-
let numFailedQuarantinedOrDisabledAttemptedToFixTests = 0
|
|
943
|
-
|
|
944
1053
|
for (const { testName, testSuiteAbsolutePath } of failedTests) {
|
|
945
1054
|
const testSuite = getTestSuitePath(testSuiteAbsolutePath, result.globalConfig.rootDir)
|
|
946
1055
|
const testManagementTest = testManagementTests
|
|
@@ -971,6 +1080,16 @@ function getCliWrapper (isNewJestVersion) {
|
|
|
971
1080
|
}
|
|
972
1081
|
}
|
|
973
1082
|
|
|
1083
|
+
// Combined check: if all failed tests are accounted for by EFD (flaky retries) and/or quarantine,
|
|
1084
|
+
// we should consider the suite passed even when neither check alone covers all failures.
|
|
1085
|
+
if (!result.results.success && (isEarlyFlakeDetectionEnabled || isTestManagementTestsEnabled)) {
|
|
1086
|
+
const totalIgnoredFailures =
|
|
1087
|
+
numEfdFailedTestsToIgnore + numFailedQuarantinedTests + numFailedQuarantinedOrDisabledAttemptedToFixTests
|
|
1088
|
+
if (totalIgnoredFailures !== 0 && result.results.numFailedTests === totalIgnoredFailures) {
|
|
1089
|
+
result.results.success = true
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
|
|
974
1093
|
// Determine session status after EFD and quarantine checks have potentially modified success
|
|
975
1094
|
let status, error
|
|
976
1095
|
if (result.results.success) {
|
|
@@ -1009,7 +1128,7 @@ function getCliWrapper (isNewJestVersion) {
|
|
|
1009
1128
|
isEarlyFlakeDetectionEnabled,
|
|
1010
1129
|
isEarlyFlakeDetectionFaulty,
|
|
1011
1130
|
isTestManagementTestsEnabled,
|
|
1012
|
-
onDone
|
|
1131
|
+
onDone,
|
|
1013
1132
|
})
|
|
1014
1133
|
|
|
1015
1134
|
const waitingResult = await Promise.race([flushPromise, timeoutPromise])
|
|
@@ -1018,11 +1137,18 @@ function getCliWrapper (isNewJestVersion) {
|
|
|
1018
1137
|
log.error('Timeout waiting for the tracer to flush')
|
|
1019
1138
|
}
|
|
1020
1139
|
|
|
1140
|
+
if (codeCoverageReportCh.hasSubscribers) {
|
|
1141
|
+
const rootDir = result.globalConfig?.rootDir || process.cwd()
|
|
1142
|
+
await new Promise((resolve) => {
|
|
1143
|
+
codeCoverageReportCh.publish({ rootDir, onDone: resolve })
|
|
1144
|
+
})
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1021
1147
|
numSkippedSuites = 0
|
|
1022
1148
|
|
|
1023
1149
|
return result
|
|
1024
1150
|
}, {
|
|
1025
|
-
replaceGetter: true
|
|
1151
|
+
replaceGetter: true,
|
|
1026
1152
|
})
|
|
1027
1153
|
}
|
|
1028
1154
|
}
|
|
@@ -1051,7 +1177,7 @@ function coverageReporterWrapper (coverageReporter) {
|
|
|
1051
1177
|
addHook({
|
|
1052
1178
|
name: '@jest/core',
|
|
1053
1179
|
file: 'build/TestScheduler.js',
|
|
1054
|
-
versions: ['>=27.0.0']
|
|
1180
|
+
versions: ['>=27.0.0'],
|
|
1055
1181
|
}, (testSchedulerPackage, frameworkVersion) => {
|
|
1056
1182
|
const oldCreateTestScheduler = testSchedulerPackage.createTestScheduler
|
|
1057
1183
|
const newCreateTestScheduler = async function () {
|
|
@@ -1070,7 +1196,7 @@ addHook({
|
|
|
1070
1196
|
addHook({
|
|
1071
1197
|
name: '@jest/core',
|
|
1072
1198
|
file: 'build/TestScheduler.js',
|
|
1073
|
-
versions: ['>=24.8.0 <27.0.0']
|
|
1199
|
+
versions: ['>=24.8.0 <27.0.0'],
|
|
1074
1200
|
}, (testSchedulerPackage, frameworkVersion) => {
|
|
1075
1201
|
shimmer.wrap(
|
|
1076
1202
|
testSchedulerPackage.default.prototype,
|
|
@@ -1081,7 +1207,7 @@ addHook({
|
|
|
1081
1207
|
|
|
1082
1208
|
addHook({
|
|
1083
1209
|
name: '@jest/test-sequencer',
|
|
1084
|
-
versions: ['>=28']
|
|
1210
|
+
versions: ['>=28'],
|
|
1085
1211
|
}, (sequencerPackage, frameworkVersion) => {
|
|
1086
1212
|
shimmer.wrap(sequencerPackage.default.prototype, 'shard', shard => function () {
|
|
1087
1213
|
const shardedTests = shard.apply(this, arguments)
|
|
@@ -1100,18 +1226,18 @@ addHook({
|
|
|
1100
1226
|
addHook({
|
|
1101
1227
|
name: '@jest/reporters',
|
|
1102
1228
|
file: 'build/coverage_reporter.js',
|
|
1103
|
-
versions: ['>=24.8.0 <26.6.2']
|
|
1229
|
+
versions: ['>=24.8.0 <26.6.2'],
|
|
1104
1230
|
}, coverageReporterWrapper)
|
|
1105
1231
|
|
|
1106
1232
|
addHook({
|
|
1107
1233
|
name: '@jest/reporters',
|
|
1108
1234
|
file: 'build/CoverageReporter.js',
|
|
1109
|
-
versions: ['>=26.6.2']
|
|
1235
|
+
versions: ['>=26.6.2'],
|
|
1110
1236
|
}, coverageReporterWrapper)
|
|
1111
1237
|
|
|
1112
1238
|
addHook({
|
|
1113
1239
|
name: '@jest/reporters',
|
|
1114
|
-
versions: ['>=30.0.0']
|
|
1240
|
+
versions: ['>=30.0.0'],
|
|
1115
1241
|
}, (reporters) => {
|
|
1116
1242
|
return shimmer.wrap(reporters, 'CoverageReporter', coverageReporterWrapper, { replaceGetter: true })
|
|
1117
1243
|
})
|
|
@@ -1119,12 +1245,12 @@ addHook({
|
|
|
1119
1245
|
addHook({
|
|
1120
1246
|
name: '@jest/core',
|
|
1121
1247
|
file: 'build/cli/index.js',
|
|
1122
|
-
versions: ['>=24.8.0 <30.0.0']
|
|
1248
|
+
versions: ['>=24.8.0 <30.0.0'],
|
|
1123
1249
|
}, getCliWrapper(false))
|
|
1124
1250
|
|
|
1125
1251
|
addHook({
|
|
1126
1252
|
name: '@jest/core',
|
|
1127
|
-
versions: ['>=30.0.0']
|
|
1253
|
+
versions: ['>=30.0.0'],
|
|
1128
1254
|
}, getCliWrapper(true))
|
|
1129
1255
|
|
|
1130
1256
|
function jestAdapterWrapper (jestAdapter, jestVersion) {
|
|
@@ -1140,7 +1266,7 @@ function jestAdapterWrapper (jestAdapter, jestVersion) {
|
|
|
1140
1266
|
testSourceFile: environment.testSourceFile,
|
|
1141
1267
|
displayName: environment.displayName,
|
|
1142
1268
|
frameworkVersion: jestVersion,
|
|
1143
|
-
testSuiteAbsolutePath: environment.testSuiteAbsolutePath
|
|
1269
|
+
testSuiteAbsolutePath: environment.testSuiteAbsolutePath,
|
|
1144
1270
|
})
|
|
1145
1271
|
return adapter.apply(this, arguments).then(suiteResults => {
|
|
1146
1272
|
const { numFailingTests, skipped, failureMessage: errorMessage } = suiteResults
|
|
@@ -1168,7 +1294,7 @@ function jestAdapterWrapper (jestAdapter, jestVersion) {
|
|
|
1168
1294
|
coverageFiles,
|
|
1169
1295
|
testSuite: environment.testSourceFile,
|
|
1170
1296
|
mockedFiles,
|
|
1171
|
-
testSuiteAbsolutePath: environment.testSuiteAbsolutePath
|
|
1297
|
+
testSuiteAbsolutePath: environment.testSuiteAbsolutePath,
|
|
1172
1298
|
})
|
|
1173
1299
|
}
|
|
1174
1300
|
testSuiteFinishCh.publish({ status, errorMessage, testSuiteAbsolutePath: environment.testSuiteAbsolutePath })
|
|
@@ -1200,13 +1326,13 @@ function jestAdapterWrapper (jestAdapter, jestVersion) {
|
|
|
1200
1326
|
addHook({
|
|
1201
1327
|
name: 'jest-circus',
|
|
1202
1328
|
file: 'build/runner.js',
|
|
1203
|
-
versions: ['>=30.0.0']
|
|
1329
|
+
versions: ['>=30.0.0'],
|
|
1204
1330
|
}, jestAdapterWrapper)
|
|
1205
1331
|
|
|
1206
1332
|
addHook({
|
|
1207
1333
|
name: 'jest-circus',
|
|
1208
1334
|
file: 'build/legacy-code-todo-rewrite/jestAdapter.js',
|
|
1209
|
-
versions: ['>=24.8.0']
|
|
1335
|
+
versions: ['>=24.8.0'],
|
|
1210
1336
|
}, jestAdapterWrapper)
|
|
1211
1337
|
|
|
1212
1338
|
function configureTestEnvironment (readConfigsResult) {
|
|
@@ -1214,9 +1340,9 @@ function configureTestEnvironment (readConfigsResult) {
|
|
|
1214
1340
|
testSessionConfigurationCh.publish(configs.map(config => config.testEnvironmentOptions))
|
|
1215
1341
|
// We can't directly use isCodeCoverageEnabled when reporting coverage in `jestAdapterWrapper`
|
|
1216
1342
|
// because `jestAdapterWrapper` runs in a different process. We have to go through `testEnvironmentOptions`
|
|
1217
|
-
|
|
1343
|
+
for (const config of configs) {
|
|
1218
1344
|
config.testEnvironmentOptions._ddTestCodeCoverageEnabled = isCodeCoverageEnabled
|
|
1219
|
-
}
|
|
1345
|
+
}
|
|
1220
1346
|
|
|
1221
1347
|
isUserCodeCoverageEnabled = !!readConfigsResult.globalConfig.collectCoverage
|
|
1222
1348
|
|
|
@@ -1227,7 +1353,7 @@ function configureTestEnvironment (readConfigsResult) {
|
|
|
1227
1353
|
if (isCodeCoverageEnabled) {
|
|
1228
1354
|
const globalConfig = {
|
|
1229
1355
|
...readConfigsResult.globalConfig,
|
|
1230
|
-
collectCoverage: true
|
|
1356
|
+
collectCoverage: true,
|
|
1231
1357
|
}
|
|
1232
1358
|
readConfigsResult.globalConfig = globalConfig
|
|
1233
1359
|
}
|
|
@@ -1238,7 +1364,7 @@ function configureTestEnvironment (readConfigsResult) {
|
|
|
1238
1364
|
const globalConfig = {
|
|
1239
1365
|
...readConfigsResult.globalConfig,
|
|
1240
1366
|
coverageReporters: ['none'],
|
|
1241
|
-
passWithNoTests: true
|
|
1367
|
+
passWithNoTests: true,
|
|
1242
1368
|
}
|
|
1243
1369
|
readConfigsResult.globalConfig = globalConfig
|
|
1244
1370
|
}
|
|
@@ -1265,7 +1391,7 @@ function jestConfigSyncWrapper (jestConfig) {
|
|
|
1265
1391
|
addHook({
|
|
1266
1392
|
name: '@jest/transform',
|
|
1267
1393
|
versions: ['>=24.8.0'],
|
|
1268
|
-
file: 'build/ScriptTransformer.js'
|
|
1394
|
+
file: 'build/ScriptTransformer.js',
|
|
1269
1395
|
}, transformPackage => {
|
|
1270
1396
|
const originalCreateScriptTransformer = transformPackage.createScriptTransformer
|
|
1271
1397
|
|
|
@@ -1311,18 +1437,18 @@ addHook({
|
|
|
1311
1437
|
addHook({
|
|
1312
1438
|
name: '@jest/core',
|
|
1313
1439
|
versions: ['>=24.8.0 <30.0.0'],
|
|
1314
|
-
file: 'build/SearchSource.js'
|
|
1440
|
+
file: 'build/SearchSource.js',
|
|
1315
1441
|
}, searchSourceWrapper)
|
|
1316
1442
|
|
|
1317
1443
|
// from 25.1.0 on, readConfigs becomes async
|
|
1318
1444
|
addHook({
|
|
1319
1445
|
name: 'jest-config',
|
|
1320
|
-
versions: ['>=25.1.0']
|
|
1446
|
+
versions: ['>=25.1.0'],
|
|
1321
1447
|
}, jestConfigAsyncWrapper)
|
|
1322
1448
|
|
|
1323
1449
|
addHook({
|
|
1324
1450
|
name: 'jest-config',
|
|
1325
|
-
versions: ['24.8.0 - 24.9.0']
|
|
1451
|
+
versions: ['24.8.0 - 24.9.0'],
|
|
1326
1452
|
}, jestConfigSyncWrapper)
|
|
1327
1453
|
|
|
1328
1454
|
const LIBRARIES_BYPASSING_JEST_REQUIRE_ENGINE = new Set([
|
|
@@ -1333,12 +1459,12 @@ const LIBRARIES_BYPASSING_JEST_REQUIRE_ENGINE = new Set([
|
|
|
1333
1459
|
'selenium-webdriver/firefox',
|
|
1334
1460
|
'selenium-webdriver/ie',
|
|
1335
1461
|
'selenium-webdriver/chromium',
|
|
1336
|
-
'winston'
|
|
1462
|
+
'winston',
|
|
1337
1463
|
])
|
|
1338
1464
|
|
|
1339
1465
|
addHook({
|
|
1340
1466
|
name: 'jest-runtime',
|
|
1341
|
-
versions: ['>=24.8.0']
|
|
1467
|
+
versions: ['>=24.8.0'],
|
|
1342
1468
|
}, (runtimePackage) => {
|
|
1343
1469
|
const Runtime = runtimePackage.default ?? runtimePackage
|
|
1344
1470
|
|
|
@@ -1395,12 +1521,12 @@ addHook({
|
|
|
1395
1521
|
const errorMessage = [...this.loggedReferenceErrors][0]
|
|
1396
1522
|
testSuiteErrorCh.publish({
|
|
1397
1523
|
errorMessage,
|
|
1398
|
-
testSuiteAbsolutePath: this._testPath
|
|
1524
|
+
testSuiteAbsolutePath: this._testPath,
|
|
1399
1525
|
})
|
|
1400
1526
|
} else {
|
|
1401
1527
|
testSuiteErrorCh.publish({
|
|
1402
1528
|
errorMessage: 'An error occurred while importing a module',
|
|
1403
|
-
testSuiteAbsolutePath: this._testPath
|
|
1529
|
+
testSuiteAbsolutePath: this._testPath,
|
|
1404
1530
|
})
|
|
1405
1531
|
}
|
|
1406
1532
|
}
|
|
@@ -1429,6 +1555,10 @@ function onMessageWrapper (onMessage) {
|
|
|
1429
1555
|
workerReportLogsCh.publish(data)
|
|
1430
1556
|
return
|
|
1431
1557
|
}
|
|
1558
|
+
if (code === JEST_WORKER_TELEMETRY_PAYLOAD_CODE) { // datadog telemetry payload
|
|
1559
|
+
workerReportTelemetryCh.publish(data)
|
|
1560
|
+
return
|
|
1561
|
+
}
|
|
1432
1562
|
return onMessage.apply(this, arguments)
|
|
1433
1563
|
}
|
|
1434
1564
|
}
|
|
@@ -1466,8 +1596,8 @@ function sendWrapper (send) {
|
|
|
1466
1596
|
_ddTestManagementTests: suiteTestManagementTests,
|
|
1467
1597
|
// TODO: figure out if we can reduce the size of the modified files object
|
|
1468
1598
|
// Can we use `testSuite` (it'd have to be relative to repository root though)
|
|
1469
|
-
_ddModifiedFiles: modifiedFiles
|
|
1470
|
-
}
|
|
1599
|
+
_ddModifiedFiles: modifiedFiles,
|
|
1600
|
+
},
|
|
1471
1601
|
}
|
|
1472
1602
|
}
|
|
1473
1603
|
return send.apply(this, arguments)
|
|
@@ -1499,7 +1629,7 @@ function enqueueWrapper (enqueue) {
|
|
|
1499
1629
|
addHook({
|
|
1500
1630
|
name: 'jest-worker',
|
|
1501
1631
|
versions: ['>=24.9.0 <30.0.0'],
|
|
1502
|
-
file: 'build/workers/ChildProcessWorker.js'
|
|
1632
|
+
file: 'build/workers/ChildProcessWorker.js',
|
|
1503
1633
|
}, (childProcessWorker) => {
|
|
1504
1634
|
const ChildProcessWorker = childProcessWorker.default
|
|
1505
1635
|
shimmer.wrap(ChildProcessWorker.prototype, 'send', sendWrapper)
|
|
@@ -1513,7 +1643,7 @@ addHook({
|
|
|
1513
1643
|
|
|
1514
1644
|
addHook({
|
|
1515
1645
|
name: 'jest-worker',
|
|
1516
|
-
versions: ['>=30.0.0']
|
|
1646
|
+
versions: ['>=30.0.0'],
|
|
1517
1647
|
}, (jestWorkerPackage) => {
|
|
1518
1648
|
shimmer.wrap(jestWorkerPackage.FifoQueue.prototype, 'enqueue', enqueueWrapper)
|
|
1519
1649
|
shimmer.wrap(jestWorkerPackage.PriorityQueue.prototype, 'enqueue', enqueueWrapper)
|