Skip to content

Conversation

watson
Copy link
Collaborator

@watson watson commented Jun 16, 2025

What does this PR do?

Sort the assertions in the major tests in config.spec.js.

Motivation

Less bike-shedding in the future when modifying these tests.

Plugin Checklist

Additional Notes

One duplicate assertion found during refactoring which has been removed. Besides that, the only changes are in the order

@watson watson self-assigned this Jun 16, 2025
@watson watson requested a review from a team as a code owner June 16, 2025 11:59
Copy link

github-actions bot commented Jun 16, 2025

Overall package size

Self size: 9.66 MB
Deduped: 101.62 MB
No deduping: 102.14 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.6.0 | 30.47 MB | 30.47 MB | | @datadog/native-appsec | 8.5.2 | 19.33 MB | 19.34 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.8.2 | 9.56 MB | 9.93 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.3 | 2.95 MB | 5.6 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.14.0 | 120.58 kB | 841.68 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | dc-polyfill | 0.1.9 | 25.11 kB | 25.11 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.2 | 23.54 kB | 23.54 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | mutexify | 1.4.0 | 5.71 kB | 8.74 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.4 | 3.96 kB | 3.96 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

Copy link

codecov bot commented Jun 16, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 80.73%. Comparing base (a8b7185) to head (d00bbe5).
Report is 3 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #5899   +/-   ##
=======================================
  Coverage   80.73%   80.73%           
=======================================
  Files         462      462           
  Lines       19914    19914           
=======================================
  Hits        16078    16078           
  Misses       3836     3836           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter
Copy link

pr-commenter bot commented Jun 16, 2025

Benchmarks

Benchmark execution time: 2025-06-17 09:12:44

Comparing candidate commit d00bbe5 in PR branch watson/cleanup with baseline commit a8b7185 in branch master.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 1271 metrics, 52 unstable metrics.

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Jun 16, 2025

Datadog Report

Branch report: watson/cleanup
Commit report: 081f6c2
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 1256 Passed, 0 Skipped, 20m 27.79s Total Time

Copy link
Collaborator

@BridgeAR BridgeAR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I doubt that it will stay sorted over time 😅
A bigger improvement for me would be to not use single entry expect calls.

expect(config).to.have.property('flushInterval', 2000)
expect(config).to.have.property('flushMinSpans', 1000)
expect(config).to.have.property('queryStringObfuscation').with.length(626)
expect(config).to.have.nested.property('apmTracingEnabled', true)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we change these, can we please change it to a deepStrictEqual call instead? That way it should be much easier to read.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I doubt that it will stay sorted over time 😅

They might not stay 100% sorted over time, but it's always easier to come back and tidy things up when it started out as sorted. Today, you just give up and add your new config where ever, but if it was 99% sorted already, it's easier to tidy things up when you're making other changes.

If we change these, can we please change it to a deepStrictEqual call instead? That way it should be much easier to read.

I prefer to keep this PR as quick and simple as possible. I don't want to spend any more time on it than I have to as I'm working on adding a new config and didn't want to keep just adding it where ever there was room 😅

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you not use copilot to refactor that while looking at something else? :)

I guess it would be capable of doing that quite well.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's going to make it complicated that some of the tests are checking the length of a given value and that the tap output for large assertions is garbage. E.g. it will just give you assertion errors like this:

expected Config{ …(109) } to have deep property 'appsec' of { apiSecurity: { …(2) }, …(14) }, but got { apiSecurity: { …(2) }, …(14) }

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

deepStrictEqual doesn't make it much better 🤔

image

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For example

-     expect(config).to.have.deep.property('serviceMapping', {
-       a: 'aa',
-       b: 'bb'
-     })
+     expect(config).to.have.deep.property('serviceMapping', { a: 'aa', b: 'bb' })

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

About half the changes in this PR was automatic sorting, the other half, I moved lines around manually where the automatic sorting came up short

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Though a bit of a hack, you can better get an idea of the actual differences if you run this command:

diff <(sort packages/dd-trace/test/config.spec.js) <(git show HEAD^:packages/dd-trace/test/config.spec.js | sort)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually, this diff is smaller as it ignores trailing commas (which has been altered when items moved to/from the end of lists/arrays):

git show HEAD^:packages/dd-trace/test/config.spec.js | sed 's/,\s*$//' | sort | diff - <(sed 's/,\s*$//' packages/dd-trace/test/config.spec.js | sort)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And here's the output of that command:

644d643
<         name: 'sampler.rules'
655d653
<         origin: 'env_var'
723d720
<         value: process.env.DD_TRACE_SAMPLING_RULES
766c763
<       {
---
>       { id: '68e75c48-57ca-4a12-adfc-575c4b05fcbe', type: 'k8s_single_step', time: '1703188212' })
958a956
>       { name: 'sampler.rules', value: process.env.DD_TRACE_SAMPLING_RULES, origin: 'env_var' }
1067d1064
<       }
1122,1123d1118
<       a: 'aa'
<       a: 'aa'
1144,1145d1138
<       b: 'bb'
<       b: 'bb'
1151d1143
<       c: 'cc'
1217d1208
<       d: 'dd'
1378d1368
<       id: '68e75c48-57ca-4a12-adfc-575c4b05fcbe'
1564d1553
<       time: '1703188212'
1575d1563
<       type: 'k8s_single_step'
1679,1682d1666
<     })
<     })
<     })
<     })
1847d1830
<     expect(config.tags).to.have.property('foo', 'bar')
1888,1889c1871,1872
<     expect(config).to.have.deep.property('installSignature', {
<     expect(config).to.have.deep.property('peerServiceMapping', {
---
>     expect(config).to.have.deep.property('installSignature'
>     expect(config).to.have.deep.property('peerServiceMapping', { c: 'cc', d: 'dd' })
1892,1893c1875,1876
<     expect(config).to.have.deep.property('serviceMapping', {
<     expect(config).to.have.deep.property('serviceMapping', {
---
>     expect(config).to.have.deep.property('serviceMapping', { a: 'aa', b: 'bb' })
>     expect(config).to.have.deep.property('serviceMapping', { a: 'aa', b: 'bb' })

@watson watson requested a review from BridgeAR June 16, 2025 12:32
@watson
Copy link
Collaborator Author

watson commented Jun 17, 2025

Just force pushed to try and trigger CI again as there's a bug in CI that might be fixable by re-running from a fresh SHA. No code-changes was added in the force-push

Copy link
Collaborator

@BridgeAR BridgeAR left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think this provides a big benefit but it does not make things worse either.

@BridgeAR BridgeAR merged commit bf64a9c into master Jun 17, 2025
620 of 622 checks passed
@BridgeAR BridgeAR deleted the watson/cleanup branch June 17, 2025 12:46
ghost pushed a commit that referenced this pull request Jun 18, 2025
@ghost ghost mentioned this pull request Jun 18, 2025
szegedi pushed a commit that referenced this pull request Jul 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants