dd-trace 6.8.0 → 6.10.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/diagnose.js +27 -25
- package/ci/init.js +6 -6
- package/ci/runbook.md +114 -20
- package/ci/test-optimization-validation/approval-artifacts.js +36 -3
- package/ci/test-optimization-validation/approval.js +78 -22
- package/ci/test-optimization-validation/blocker-category.js +24 -0
- package/ci/test-optimization-validation/ci-discovery.js +23 -17
- package/ci/test-optimization-validation/ci-package-scripts.js +34 -6
- package/ci/test-optimization-validation/ci-remediation.js +1 -1
- package/ci/test-optimization-validation/cli.js +280 -52
- package/ci/test-optimization-validation/command-blocker.js +159 -20
- package/ci/test-optimization-validation/command-output-policy.js +9 -3
- package/ci/test-optimization-validation/command-runner.js +9 -7
- package/ci/test-optimization-validation/environment.js +4 -2
- package/ci/test-optimization-validation/executable.js +15 -13
- package/ci/test-optimization-validation/execution-lock.js +70 -0
- package/ci/test-optimization-validation/framework-adapters/cucumber-validation.json +3 -0
- package/ci/test-optimization-validation/framework-adapters/cucumber.js +657 -5
- package/ci/test-optimization-validation/framework-adapters/vitest.js +517 -0
- package/ci/test-optimization-validation/generated-files.js +38 -28
- package/ci/test-optimization-validation/generated-test-contract.js +8 -4
- package/ci/test-optimization-validation/generated-verifier.js +24 -17
- package/ci/test-optimization-validation/literal-glob.js +52 -0
- package/ci/test-optimization-validation/manifest-loader.js +3 -0
- package/ci/test-optimization-validation/manifest-scaffold.js +300 -50
- package/ci/test-optimization-validation/manifest-schema.js +80 -17
- package/ci/test-optimization-validation/offline-fixtures.js +13 -4
- package/ci/test-optimization-validation/package-check.js +94 -0
- package/ci/test-optimization-validation/plan-writer.js +183 -10
- package/ci/test-optimization-validation/preflight-runner.js +110 -31
- package/ci/test-optimization-validation/project-build-artifact.js +31 -0
- package/ci/test-optimization-validation/redaction.js +18 -27
- package/ci/test-optimization-validation/report-writer.js +182 -48
- package/ci/test-optimization-validation/result-semantics.js +20 -3
- package/ci/test-optimization-validation/runner-command.js +40 -20
- package/ci/test-optimization-validation/runner-contract.js +79 -43
- package/ci/test-optimization-validation/scenarios/basic-reporting.js +59 -5
- package/ci/test-optimization-validation/scenarios/ci-wiring.js +141 -35
- package/ci/test-optimization-validation/scenarios/helpers.js +30 -6
- package/ci/test-optimization-validation/static-diagnosis.js +10 -3
- package/ci/test-optimization-validation/test-output.js +2 -1
- package/ci/test-optimization-validation/validation-blocker.js +21 -0
- package/ci/vitest-no-worker-init-setup.mjs +140 -42
- package/index.d.ts +140 -1
- package/init.js +1 -17
- package/initialize.mjs +11 -0
- package/loader-hook.mjs +6 -4
- package/package.json +8 -5
- package/packages/datadog-core/src/utils/src/parse-tags.js +0 -1
- package/packages/datadog-esbuild/src/utils.js +16 -1
- package/packages/datadog-instrumentations/src/ai.js +61 -34
- package/packages/datadog-instrumentations/src/bluebird.js +6 -6
- package/packages/datadog-instrumentations/src/claude-agent-sdk.js +81 -5
- package/packages/datadog-instrumentations/src/confluentinc-kafka-javascript.js +111 -6
- package/packages/datadog-instrumentations/src/cucumber.js +124 -47
- package/packages/datadog-instrumentations/src/dns.js +21 -2
- package/packages/datadog-instrumentations/src/electron.js +1 -0
- package/packages/datadog-instrumentations/src/fastify.js +3 -1
- package/packages/datadog-instrumentations/src/grpc/client.js +4 -2
- package/packages/datadog-instrumentations/src/helpers/callback-instrumentor.js +3 -1
- package/packages/datadog-instrumentations/src/helpers/hooks.js +2 -0
- package/packages/datadog-instrumentations/src/helpers/pool-acquire.js +629 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/index.js +34 -9
- package/packages/datadog-instrumentations/src/helpers/rewriter/instrumentations/webdriverio.js +199 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/loader.mjs +20 -2
- package/packages/datadog-instrumentations/src/helpers/rewriter/targets.js +32 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/targets.json +62 -0
- package/packages/datadog-instrumentations/src/helpers/rewriter/transforms.js +83 -1
- package/packages/datadog-instrumentations/src/helpers/router-helper.js +37 -6
- package/packages/datadog-instrumentations/src/jest/coverage-backfill.js +1 -1
- package/packages/datadog-instrumentations/src/jest.js +980 -234
- package/packages/datadog-instrumentations/src/mocha/main.js +108 -10
- package/packages/datadog-instrumentations/src/mocha/utils.js +66 -50
- package/packages/datadog-instrumentations/src/mocha/webdriverio-protocol.js +25 -0
- package/packages/datadog-instrumentations/src/mocha/worker.js +12 -18
- package/packages/datadog-instrumentations/src/mysql.js +46 -16
- package/packages/datadog-instrumentations/src/mysql2.js +119 -18
- package/packages/datadog-instrumentations/src/next.js +155 -23
- package/packages/datadog-instrumentations/src/openai.js +14 -0
- package/packages/datadog-instrumentations/src/path-to-regexp.js +67 -1
- package/packages/datadog-instrumentations/src/pg.js +209 -11
- package/packages/datadog-instrumentations/src/playwright.js +173 -79
- package/packages/datadog-instrumentations/src/promise-js.js +4 -4
- package/packages/datadog-instrumentations/src/promise.js +3 -3
- package/packages/datadog-instrumentations/src/router.js +195 -19
- package/packages/datadog-instrumentations/src/vitest-main-no-worker-init.js +85 -13
- package/packages/datadog-instrumentations/src/vitest-main.js +528 -72
- package/packages/datadog-instrumentations/src/vitest-util.js +106 -12
- package/packages/datadog-instrumentations/src/vitest-worker.js +382 -40
- package/packages/datadog-instrumentations/src/webdriverio.js +212 -22
- package/packages/datadog-instrumentations/src/when.js +3 -3
- package/packages/datadog-instrumentations/src/ws.js +5 -1
- package/packages/datadog-plugin-aws-durable-execution-sdk-js/src/trace-checkpoint.js +12 -6
- package/packages/datadog-plugin-aws-sdk/src/services/bedrockruntime/utils.js +59 -48
- package/packages/datadog-plugin-aws-sdk/src/services/kinesis.js +2 -5
- package/packages/datadog-plugin-aws-sdk/src/services/sqs.js +1 -5
- package/packages/datadog-plugin-child_process/src/scrub-cmd-params.js +1 -3
- package/packages/datadog-plugin-cucumber/src/index.js +5 -1
- package/packages/datadog-plugin-cypress/src/cypress-plugin.js +51 -47
- package/packages/datadog-plugin-cypress/src/support.js +7 -4
- package/packages/datadog-plugin-electron/src/net.js +10 -4
- package/packages/datadog-plugin-google-cloud-pubsub/src/producer.js +31 -17
- package/packages/datadog-plugin-http/src/client.js +1 -1
- package/packages/datadog-plugin-http2/src/client.js +1 -1
- package/packages/datadog-plugin-jest/src/index.js +6 -22
- package/packages/datadog-plugin-kafkajs/src/batch-consumer.js +2 -3
- package/packages/datadog-plugin-kafkajs/src/consumer.js +2 -3
- package/packages/datadog-plugin-kafkajs/src/producer.js +5 -3
- package/packages/datadog-plugin-kafkajs/src/utils.js +65 -7
- package/packages/datadog-plugin-mocha/src/index.js +832 -4
- package/packages/datadog-plugin-mysql/src/index.js +37 -0
- package/packages/datadog-plugin-next/src/index.js +51 -21
- package/packages/datadog-plugin-openai/src/tracing.js +4 -0
- package/packages/datadog-plugin-openai-agents/src/integration.js +278 -69
- package/packages/datadog-plugin-openai-agents/src/processor.js +16 -4
- package/packages/datadog-plugin-pg/src/index.js +66 -1
- package/packages/datadog-plugin-playwright/src/index.js +1 -1
- package/packages/datadog-plugin-vitest/src/index.js +103 -27
- package/packages/datadog-plugin-ws/src/util.js +2 -1
- package/packages/datadog-shimmer/src/shimmer.js +6 -2
- package/packages/dd-trace/src/aiguard/sdk.js +3 -0
- package/packages/dd-trace/src/appsec/api_security/normalized-route.js +453 -0
- package/packages/dd-trace/src/appsec/{blocking.js → blocking/index.js} +26 -6
- package/packages/dd-trace/src/appsec/handlers/auth.js +62 -0
- package/packages/dd-trace/src/appsec/handlers/http-request.js +228 -0
- package/packages/dd-trace/src/appsec/handlers/http-response.js +78 -0
- package/packages/dd-trace/src/appsec/handlers/http-shared.js +24 -0
- package/packages/dd-trace/src/appsec/handlers/payments.js +104 -0
- package/packages/dd-trace/src/appsec/iast/analyzers/hsts-header-missing-analyzer.js +1 -1
- package/packages/dd-trace/src/appsec/iast/vulnerabilities-formatter/utils.js +1 -1
- package/packages/dd-trace/src/appsec/index.js +48 -476
- package/packages/dd-trace/src/appsec/sdk/track_event.js +9 -0
- package/packages/dd-trace/src/carrier.js +356 -0
- package/packages/dd-trace/src/ci-visibility/coverage-report-discovery.js +46 -14
- package/packages/dd-trace/src/ci-visibility/efd-retry-policy.js +89 -0
- package/packages/dd-trace/src/ci-visibility/exporters/ci-visibility-exporter.js +27 -13
- package/packages/dd-trace/src/ci-visibility/exporters/git/git_metadata.js +17 -0
- package/packages/dd-trace/src/ci-visibility/exporters/test-worker/index.js +21 -1
- package/packages/dd-trace/src/ci-visibility/intelligent-test-runner/get-skippable-suites.js +22 -7
- package/packages/dd-trace/src/ci-visibility/requests/get-library-configuration.js +9 -14
- package/packages/dd-trace/src/ci-visibility/requests/upload-coverage-report.js +21 -5
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache-schema.js +1 -1
- package/packages/dd-trace/src/ci-visibility/test-optimization-http-cache.js +5 -1
- package/packages/dd-trace/src/config/generated-config-types.d.ts +5 -0
- package/packages/dd-trace/src/config/helper.js +2 -0
- package/packages/dd-trace/src/config/index.js +16 -5
- package/packages/dd-trace/src/config/remote_config.js +1 -1
- package/packages/dd-trace/src/config/supported-configurations.json +18 -0
- package/packages/dd-trace/src/datastreams/context.js +6 -1
- package/packages/dd-trace/src/datastreams/manager.js +5 -1
- package/packages/dd-trace/src/datastreams/pathway.js +23 -22
- package/packages/dd-trace/src/datastreams/processor.js +3 -2
- package/packages/dd-trace/src/debugger/devtools_client/status.js +1 -1
- package/packages/dd-trace/src/encode/coverage-ci-visibility.js +0 -1
- package/packages/dd-trace/src/guardrails/apply-pm2-env.js +16 -0
- package/packages/dd-trace/src/guardrails/log.js +1 -10
- package/packages/dd-trace/src/llmobs/constants/tags.js +5 -0
- package/packages/dd-trace/src/llmobs/eval-metric.js +249 -0
- package/packages/dd-trace/src/llmobs/experiments/index.js +33 -25
- package/packages/dd-trace/src/llmobs/experiments/util.js +4 -2
- package/packages/dd-trace/src/llmobs/index.js +34 -2
- package/packages/dd-trace/src/llmobs/noop.js +2 -0
- package/packages/dd-trace/src/llmobs/plugins/ai/ddTelemetry.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/ai/util.js +1 -1
- package/packages/dd-trace/src/llmobs/plugins/bedrockruntime.js +5 -5
- package/packages/dd-trace/src/llmobs/plugins/langchain/index.js +1 -1
- package/packages/dd-trace/src/llmobs/sdk.js +149 -68
- package/packages/dd-trace/src/llmobs/span_processor.js +16 -0
- package/packages/dd-trace/src/llmobs/tagger.js +96 -0
- package/packages/dd-trace/src/llmobs/telemetry.js +18 -0
- package/packages/dd-trace/src/llmobs/util.js +78 -0
- package/packages/dd-trace/src/llmobs/writers/base.js +3 -0
- package/packages/dd-trace/src/llmobs/writers/util.js +2 -0
- package/packages/dd-trace/src/log/channels.js +1 -9
- package/packages/dd-trace/src/log/levels.js +12 -0
- package/packages/dd-trace/src/openfeature/writers/exposures.js +1 -1
- package/packages/dd-trace/src/openfeature/writers/util.js +1 -1
- package/packages/dd-trace/src/opentelemetry/logs/batch_log_processor.js +1 -1
- package/packages/dd-trace/src/opentelemetry/metrics/meter.js +8 -4
- package/packages/dd-trace/src/opentelemetry/metrics/periodic_metric_reader.js +1 -1
- package/packages/dd-trace/src/opentelemetry/span.js +4 -0
- package/packages/dd-trace/src/opentracing/propagation/text_map.js +126 -120
- package/packages/dd-trace/src/opentracing/propagation/text_map_dsm.js +4 -8
- package/packages/dd-trace/src/plugin_manager.js +2 -0
- package/packages/dd-trace/src/plugins/ci_plugin.js +21 -5
- package/packages/dd-trace/src/plugins/index.js +1 -0
- package/packages/dd-trace/src/plugins/util/ci.js +6 -0
- package/packages/dd-trace/src/plugins/util/git.js +6 -4
- package/packages/dd-trace/src/plugins/util/http-otel-semantics.js +2 -2
- package/packages/dd-trace/src/plugins/util/ip_extractor.js +1 -1
- package/packages/{datadog-plugin-jest/src/util.js → dd-trace/src/plugins/util/jest.js} +3 -62
- package/packages/dd-trace/src/plugins/util/stacktrace.js +3 -0
- package/packages/dd-trace/src/plugins/util/test.js +397 -74
- package/packages/dd-trace/src/plugins/util/url.js +1 -1
- package/packages/dd-trace/src/plugins/util/web.js +76 -3
- package/packages/dd-trace/src/profiler.js +1 -1
- package/packages/dd-trace/src/profiling/exporters/event_serializer.js +1 -1
- package/packages/dd-trace/src/profiling/profilers/events.js +2 -2
- package/packages/dd-trace/src/proxy.js +1 -0
- package/packages/dd-trace/src/ritm.js +5 -0
- package/packages/dd-trace/src/runtime_metrics/runtime_metrics.js +4 -2
- package/packages/dd-trace/src/sampling_rule.js +4 -2
- package/packages/dd-trace/src/service-naming/schemas/v0/storage.js +1 -1
- package/packages/dd-trace/src/service-naming/schemas/v1/storage.js +1 -1
- package/packages/dd-trace/src/telemetry/logs/index.js +3 -0
- package/packages/dd-trace/src/telemetry/telemetry.js +1 -1
- package/vendor/dist/pprof-format/index.js +1 -1
- package/version.js +10 -8
- /package/packages/dd-trace/src/appsec/{blocked_templates.js → blocking/templates.js} +0 -0
|
@@ -36,6 +36,7 @@ const plugins = {
|
|
|
36
36
|
get '@smithy/core' () { return require('../../../datadog-plugin-aws-sdk/src') },
|
|
37
37
|
get '@smithy/smithy-client' () { return require('../../../datadog-plugin-aws-sdk/src') },
|
|
38
38
|
get '@vitest/runner' () { return require('../../../datadog-plugin-vitest/src') },
|
|
39
|
+
get '@wdio/jasmine-framework' () { return require('../../../datadog-plugin-mocha/src') },
|
|
39
40
|
get '@wdio/local-runner' () { return require('../../../datadog-plugin-mocha/src') },
|
|
40
41
|
get '@langchain/langgraph' () { return require('../../../datadog-plugin-langgraph/src') },
|
|
41
42
|
get '@openai/agents' () { return require('../../../datadog-plugin-openai-agents/src') },
|
|
@@ -114,6 +114,9 @@ const uniq = (items) => [...new Set(items)]
|
|
|
114
114
|
*
|
|
115
115
|
* This is much more robust than relying on hardcoded paths, especially on self-hosted runners
|
|
116
116
|
* and GHES environments where the runner may be installed under arbitrary directories/users.
|
|
117
|
+
*
|
|
118
|
+
* @param {string | undefined} runnerTemp value of the `RUNNER_TEMP` environment variable
|
|
119
|
+
* @returns {string[]}
|
|
117
120
|
*/
|
|
118
121
|
function getGithubDiagnosticDirsFromEnv (runnerTemp) {
|
|
119
122
|
const dirs = []
|
|
@@ -182,6 +185,9 @@ function expandGlobPattern (pattern) {
|
|
|
182
185
|
/**
|
|
183
186
|
* Expands a mixed list of literal directories and glob patterns into concrete
|
|
184
187
|
* directories. Literals pass through unchanged (existence is checked later).
|
|
188
|
+
*
|
|
189
|
+
* @param {string[]} candidates
|
|
190
|
+
* @returns {string[]}
|
|
185
191
|
*/
|
|
186
192
|
function expandDiagnosticDirCandidates (candidates) {
|
|
187
193
|
const expanded = []
|
|
@@ -38,6 +38,8 @@ const {
|
|
|
38
38
|
const { filterSensitiveInfoFromRepository } = require('./url')
|
|
39
39
|
const { cachedExec } = require('./git-cache')
|
|
40
40
|
|
|
41
|
+
/** @typedef {NonNullable<ReturnType<string['match']>>} RegExpMatch */
|
|
42
|
+
|
|
41
43
|
const legacyStorage = storage('legacy')
|
|
42
44
|
|
|
43
45
|
const GIT_REV_LIST_MAX_BUFFER = 12 * 1024 * 1024 // 12MB
|
|
@@ -116,12 +118,12 @@ function isShallowRepository () {
|
|
|
116
118
|
|
|
117
119
|
function getGitVersion () {
|
|
118
120
|
const gitVersionString = sanitizedExec('git', ['version'])
|
|
119
|
-
const gitVersionMatches = /** @type {
|
|
121
|
+
const gitVersionMatches = /** @type {RegExpMatch} */ (gitVersionString.match(/git version (\d+)\.(\d+)\.(\d+)/))
|
|
120
122
|
try {
|
|
121
123
|
return {
|
|
122
|
-
major: Number.parseInt(gitVersionMatches[1]),
|
|
123
|
-
minor: Number.parseInt(gitVersionMatches[2]),
|
|
124
|
-
patch: Number.parseInt(gitVersionMatches[3]),
|
|
124
|
+
major: Number.parseInt(gitVersionMatches[1], 10),
|
|
125
|
+
minor: Number.parseInt(gitVersionMatches[2], 10),
|
|
126
|
+
patch: Number.parseInt(gitVersionMatches[3], 10),
|
|
125
127
|
}
|
|
126
128
|
} catch {
|
|
127
129
|
return null
|
|
@@ -71,7 +71,7 @@ function decomposeServerUrl (rawUrl, obfuscatedUrl) {
|
|
|
71
71
|
address = stripIpv6Brackets(hostname)
|
|
72
72
|
}
|
|
73
73
|
if (parsed.port) {
|
|
74
|
-
const parsedPort = Number.parseInt(parsed.port)
|
|
74
|
+
const parsedPort = Number.parseInt(parsed.port, 10)
|
|
75
75
|
if (parsedPort > 0) port = parsedPort
|
|
76
76
|
}
|
|
77
77
|
path = parsed.pathname || '/'
|
|
@@ -210,7 +210,7 @@ function applyHttpOtelSemantics (formattedSpan) {
|
|
|
210
210
|
// metric (the OTLP exporter serializes meta as stringValue but metrics as
|
|
211
211
|
// intValue) — mirroring how server.port is handled below. Guard against a
|
|
212
212
|
// non-numeric status, which would otherwise write a NaN metric.
|
|
213
|
-
statusCode = Number.parseInt(status)
|
|
213
|
+
statusCode = Number.parseInt(status, 10)
|
|
214
214
|
if (Number.isFinite(statusCode)) newMetrics[HTTP_RESPONSE_STATUS_CODE] = statusCode
|
|
215
215
|
}
|
|
216
216
|
|
|
@@ -36,7 +36,7 @@ const privateIPMatcher = new net.BlockList()
|
|
|
36
36
|
for (const cidr of privateCIDRs) {
|
|
37
37
|
const [address, prefix] = cidr.split('/')
|
|
38
38
|
|
|
39
|
-
privateIPMatcher.addSubnet(address, Number.parseInt(prefix), net.isIPv6(address) ? 'ipv6' : 'ipv4')
|
|
39
|
+
privateIPMatcher.addSubnet(address, Number.parseInt(prefix, 10), net.isIPv6(address) ? 'ipv6' : 'ipv4')
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
function extractIp (config, req) {
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const {
|
|
4
|
-
const { parse } = require('../../../vendor/dist/jest-docblock')
|
|
5
|
-
|
|
6
|
-
const { getTestSuitePath } = require('../../dd-trace/src/plugins/util/test')
|
|
7
|
-
const log = require('../../dd-trace/src/log')
|
|
3
|
+
const { getTestSuitePath, isMarkedAsUnskippable } = require('./test')
|
|
8
4
|
|
|
9
5
|
/**
|
|
10
6
|
* There are two ways to call `test.each` in `jest`:
|
|
@@ -15,6 +11,8 @@ const log = require('../../dd-trace/src/log')
|
|
|
15
11
|
* [[1, 2, 3], [2, 3, 5]]
|
|
16
12
|
* 2. An array of objects, e.g.
|
|
17
13
|
* [{ a: 1, b: 2, expected: 3 }, { a: 2, b: 3, expected: 5}]
|
|
14
|
+
*
|
|
15
|
+
* @param {unknown[]} testParameters `test.each` arguments
|
|
18
16
|
*/
|
|
19
17
|
function getFormattedJestTestParameters (testParameters) {
|
|
20
18
|
if (!testParameters || !testParameters.length) {
|
|
@@ -67,62 +65,6 @@ function getJestTestName (test) {
|
|
|
67
65
|
return removeSeedSuffixFromTestName(getRawJestTestName(test))
|
|
68
66
|
}
|
|
69
67
|
|
|
70
|
-
const globalDocblockRegExp = /^\s*(\/\*\*?(.|\r?\n)*?\*\/)/
|
|
71
|
-
const MAX_COMMENTS_CHECKED = 10
|
|
72
|
-
|
|
73
|
-
function isMarkedAsUnskippable (test) {
|
|
74
|
-
let testSource
|
|
75
|
-
|
|
76
|
-
try {
|
|
77
|
-
testSource = readFileSync(test.path, 'utf8')
|
|
78
|
-
} catch {
|
|
79
|
-
return false
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const re = globalDocblockRegExp
|
|
83
|
-
re.lastIndex = 0
|
|
84
|
-
let commentsChecked = 0
|
|
85
|
-
|
|
86
|
-
while (testSource.length) {
|
|
87
|
-
const match = re.exec(testSource)
|
|
88
|
-
if (!match) break
|
|
89
|
-
const comment = match[1]
|
|
90
|
-
|
|
91
|
-
let docblocks
|
|
92
|
-
try {
|
|
93
|
-
docblocks = parse(comment)
|
|
94
|
-
} catch {
|
|
95
|
-
// Skip unparsable comment and continue scanning
|
|
96
|
-
if (commentsChecked++ >= MAX_COMMENTS_CHECKED) {
|
|
97
|
-
return false
|
|
98
|
-
}
|
|
99
|
-
continue
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
if (docblocks?.datadog) {
|
|
103
|
-
try {
|
|
104
|
-
// @ts-expect-error The datadog type is defined by us and may only be a string.
|
|
105
|
-
return JSON.parse(docblocks.datadog).unskippable
|
|
106
|
-
} catch {
|
|
107
|
-
// If the @datadog block comment is present but malformed, we'll run the suite
|
|
108
|
-
log.warn('@datadog block comment is malformed.')
|
|
109
|
-
return true
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (commentsChecked++ >= MAX_COMMENTS_CHECKED) {
|
|
114
|
-
return false
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
// To stop as soon as no doc blocks are found, slice the source. That way the
|
|
118
|
-
// regexp works by using the `^` anchor. Without it, it would continue
|
|
119
|
-
// scanning the rest of the file.
|
|
120
|
-
testSource = testSource.slice(match[0].length)
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
return false
|
|
124
|
-
}
|
|
125
|
-
|
|
126
68
|
function getJestSuitesToRun (skippableSuites, originalTests, rootDir, fallbackRootDir) {
|
|
127
69
|
const unskippableSuites = {}
|
|
128
70
|
const forcedToRunSuites = {}
|
|
@@ -193,6 +135,5 @@ module.exports = {
|
|
|
193
135
|
getJestTestName,
|
|
194
136
|
getRawJestTestName,
|
|
195
137
|
getJestSuitesToRun,
|
|
196
|
-
isMarkedAsUnskippable,
|
|
197
138
|
removeSeedSuffixFromTestName,
|
|
198
139
|
}
|
|
@@ -184,6 +184,9 @@ function isDDInstrumentationFile (fileName) {
|
|
|
184
184
|
* This function extracts the `myscript.js:10:3` part, passes it, returns the file name, line number, and column
|
|
185
185
|
* number and sets the `index` to the start of the whole location string.
|
|
186
186
|
*
|
|
187
|
+
* @param {string} stack the stack trace, or the nested location string when recursing
|
|
188
|
+
* @param {number} start index of the first character of the frame in `stack`
|
|
189
|
+
* @param {number} index index to start parsing backwards from
|
|
187
190
|
* @returns {[string, string, string, number]|undefined}
|
|
188
191
|
*/
|
|
189
192
|
function parseLocation (stack, start, index) {
|