Skip to content

Commit 4ba585c

Browse files
authoredDec 1, 2023
chore: fix tests for zlib differences between node versions (#7040)
1 parent bc7f53d commit 4ba585c

File tree

7 files changed

+68
-55
lines changed

7 files changed

+68
-55
lines changed
 

‎tap-snapshots/test/lib/commands/pack.js.test.cjs

+14-14
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@ Array [
1616
name: test-package
1717
version: 1.0.0
1818
filename: test-package-1.0.0.tgz
19-
package size: 136 B
19+
package size: {size}
2020
unpacked size: 41 B
21-
shasum: a92a0679a70a450f14f98a468756948a679e4107
22-
integrity: sha512-Gka9ZV/Bryxky[...]LgMJ+0F+FhXMA==
21+
shasum: {sha}
22+
integrity: {integrity}
2323
total files: 1
2424
),
2525
"",
@@ -41,14 +41,14 @@ Array [
4141
Object {
4242
"mode": 420,
4343
"path": "package.json",
44-
"size": 41,
44+
"size": "{size}",
4545
},
4646
],
4747
"id": "test-package@1.0.0",
48-
"integrity": "sha512-Gka9ZV/BryxkypfvMpTvLfaJE1AUi7PK1EAbYqnVzqtucf6QvUK4CFsLVzagY1GwZVx2T1jwWLgMJ+0F+FhXMA==",
48+
"integrity": "{integrity}",
4949
"name": "test-package",
50-
"shasum": "a92a0679a70a450f14f98a468756948a679e4107",
51-
"size": 136,
50+
"shasum": "{sha}",
51+
"size": "{size}",
5252
"unpackedSize": 41,
5353
"version": "1.0.0",
5454
},
@@ -71,14 +71,14 @@ Array [
7171
Object {
7272
"mode": 420,
7373
"path": "package.json",
74-
"size": 50,
74+
"size": "{size}",
7575
},
7676
],
7777
"id": "@myscope/test-package@1.0.0",
78-
"integrity": "sha512-bUu8iTm2E5DZMrwKeyx963K6ViEmaFocXh75EujgI+FHSaJeqvObcdk1KFwdx8CbOgsfNHEvWNQw/bONAJsoNw==",
78+
"integrity": "{integrity}",
7979
"name": "@myscope/test-package",
80-
"shasum": "7e6eb2e1ca46bed6b8fa8e144e0fcd1b22fe2d98",
81-
"size": 145,
80+
"shasum": "{sha}",
81+
"size": "{size}",
8282
"unpackedSize": 50,
8383
"version": "1.0.0",
8484
},
@@ -97,10 +97,10 @@ Array [
9797
name: test-package
9898
version: 1.0.0
9999
filename: test-package-1.0.0.tgz
100-
package size: 136 B
100+
package size: {size}
101101
unpacked size: 41 B
102-
shasum: a92a0679a70a450f14f98a468756948a679e4107
103-
integrity: sha512-Gka9ZV/Bryxky[...]LgMJ+0F+FhXMA==
102+
shasum: {sha}
103+
integrity: {integrity}
104104
total files: 1
105105
),
106106
"",

‎tap-snapshots/test/lib/commands/publish.js.test.cjs

+24-24
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ Array [
3838
name: test-package
3939
version: 1.0.0
4040
filename: test-package-1.0.0.tgz
41-
package size: 160 B
41+
package size: {size}
4242
unpacked size: 87 B
43-
shasum:{sha}
44-
integrity:{sha}
43+
shasum: {sha}
44+
integrity: {integrity}
4545
total files: 1
4646
),
4747
],
@@ -82,15 +82,15 @@ exports[`test/lib/commands/publish.js TAP json > new package json 1`] = `
8282
"id": "test-package@1.0.0",
8383
"name": "test-package",
8484
"version": "1.0.0",
85-
"size": 160,
85+
"size": "{size}",
8686
"unpackedSize": 87,
8787
"shasum": "{sha}",
88-
"integrity": "{sha}",
88+
"integrity": "{integrity}",
8989
"filename": "test-package-1.0.0.tgz",
9090
"files": [
9191
{
9292
"path": "package.json",
93-
"size": 87,
93+
"size": "{size}",
9494
"mode": 420
9595
}
9696
],
@@ -289,10 +289,10 @@ Array [
289289
name: @npm/test-package
290290
version: 1.0.0
291291
filename: npm-test-package-1.0.0.tgz
292-
package size: 147 B
292+
package size: {size}
293293
unpacked size: 55 B
294-
shasum:{sha}
295-
integrity:{sha}
294+
shasum: {sha}
295+
integrity: {integrity}
296296
total files: 1
297297
),
298298
],
@@ -344,10 +344,10 @@ Array [
344344
name: @npm/test-package
345345
version: 1.0.0
346346
filename: npm-test-package-1.0.0.tgz
347-
package size: 147 B
347+
package size: {size}
348348
unpacked size: 55 B
349-
shasum:{sha}
350-
integrity:{sha}
349+
shasum: {sha}
350+
integrity: {integrity}
351351
total files: 1
352352
),
353353
],
@@ -398,10 +398,10 @@ Array [
398398
name: test-tar-package
399399
version: 1.0.0
400400
filename: test-tar-package-1.0.0.tgz
401-
package size: 218 B
401+
package size: {size}
402402
unpacked size: 124 B
403-
shasum:{sha}
404-
integrity:{sha}
403+
shasum: {sha}
404+
integrity: {integrity}
405405
total files: 2
406406
),
407407
],
@@ -550,15 +550,15 @@ exports[`test/lib/commands/publish.js TAP workspaces json > all workspaces in js
550550
"id": "workspace-a@1.2.3-a",
551551
"name": "workspace-a",
552552
"version": "1.2.3-a",
553-
"size": 162,
553+
"size": "{size}",
554554
"unpackedSize": 82,
555555
"shasum": "{sha}",
556-
"integrity": "{sha}",
556+
"integrity": "{integrity}",
557557
"filename": "workspace-a-1.2.3-a.tgz",
558558
"files": [
559559
{
560560
"path": "package.json",
561-
"size": 82,
561+
"size": "{size}",
562562
"mode": 420
563563
}
564564
],
@@ -569,15 +569,15 @@ exports[`test/lib/commands/publish.js TAP workspaces json > all workspaces in js
569569
"id": "workspace-b@1.2.3-n",
570570
"name": "workspace-b",
571571
"version": "1.2.3-n",
572-
"size": 171,
572+
"size": "{size}",
573573
"unpackedSize": 92,
574574
"shasum": "{sha}",
575-
"integrity": "{sha}",
575+
"integrity": "{integrity}",
576576
"filename": "workspace-b-1.2.3-n.tgz",
577577
"files": [
578578
{
579579
"path": "package.json",
580-
"size": 92,
580+
"size": "{size}",
581581
"mode": 420
582582
}
583583
],
@@ -588,15 +588,15 @@ exports[`test/lib/commands/publish.js TAP workspaces json > all workspaces in js
588588
"id": "workspace-n@1.2.3-n",
589589
"name": "workspace-n",
590590
"version": "1.2.3-n",
591-
"size": 140,
591+
"size": "{size}",
592592
"unpackedSize": 42,
593593
"shasum": "{sha}",
594-
"integrity": "{sha}",
594+
"integrity": "{integrity}",
595595
"filename": "workspace-n-1.2.3-n.tgz",
596596
"files": [
597597
{
598598
"path": "package.json",
599-
"size": 42,
599+
"size": "{size}",
600600
"mode": 420
601601
}
602602
],

‎tap-snapshots/test/lib/utils/tar.js.test.cjs

+6-6
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ bundle-dep
2323
name: my-cool-pkg
2424
version: 1.0.0
2525
filename: my-cool-pkg-1.0.0.tgz
26-
package size: 271 B
26+
package size: {size}
2727
unpacked size: 126 B
28-
shasum: 23e31c8ad422f96301c07730e61ff403b10306f1
29-
integrity: sha512-/Lg5tEGQv5A5y[...]gq8T9D5+Wat1A==
28+
shasum: {sha}
29+
integrity: {integrity}
3030
bundled deps: 1
3131
bundled files: 0
3232
own files: 5
@@ -53,10 +53,10 @@ bundle-dep
5353
name: @myscope/my-cool-pkg
5454
version: 1.0.0
5555
filename: myscope-my-cool-pkg-1.0.0.tgz
56-
package size: 280 B
56+
package size: {size}
5757
unpacked size: 135 B
58-
shasum: a4f63307f2211e8fde72cd39bc1176b4fe997b71
59-
integrity: sha512-b+RavF8JiErJt[...]YpwkJc8ycaabA==
58+
shasum: {sha}
59+
integrity: {integrity}
6060
bundled deps: 1
6161
bundled files: 0
6262
own files: 5

‎test/fixtures/clean-snapshot.js

+13-3
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,21 @@ const cleanDate = (str) =>
3333

3434
const cleanTime = str => str.replace(/in [0-9]+m?s\s*$/gm, 'in {TIME}')
3535

36+
const cleanZlib = str => str
37+
.replace(/shasum:( *)[0-9a-f]{40}/g, 'shasum:$1{sha}')
38+
.replace(/integrity:( *).*/g, 'integrity:$1{integrity}')
39+
.replace(/package size:( *)[0-9 A-Z]*/g, 'package size:$1{size}')
40+
41+
.replace(/"shasum": "[0-9a-f]{40}",/g, '"shasum": "{sha}",')
42+
.replace(/"integrity": ".*",/g, '"integrity": "{integrity}",')
43+
.replace(/"size": [0-9]*,/g, '"size": "{size}",')
44+
3645
module.exports = {
37-
normalizePath,
38-
pathRegex,
3946
cleanCwd,
4047
cleanDate,
41-
cleanTime,
4248
cleanNewlines,
49+
cleanTime,
50+
cleanZlib,
51+
normalizePath,
52+
pathRegex,
4353
}

‎test/lib/commands/pack.js

+3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
const t = require('tap')
22
const { load: loadMockNpm } = require('../../fixtures/mock-npm')
3+
const { cleanZlib } = require('../../fixtures/clean-snapshot')
34
const path = require('path')
45
const fs = require('fs')
56

7+
t.cleanSnapshot = data => cleanZlib(data)
8+
69
t.test('should pack current directory with no arguments', async t => {
710
const { npm, outputs, logs } = await loadMockNpm(t, {
811
prefixDir: {

‎test/lib/commands/publish.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const t = require('tap')
22
const { load: loadMockNpm } = require('../../fixtures/mock-npm')
3+
const { cleanZlib } = require('../../fixtures/clean-snapshot')
34
const MockRegistry = require('@npmcli/mock-registry')
45
const pacote = require('pacote')
56
const Arborist = require('@npmcli/arborist')
@@ -19,12 +20,7 @@ const pkgJson = {
1920
version: '1.0.0',
2021
}
2122

22-
t.cleanSnapshot = data => {
23-
return data.replace(/shasum:.*/g, 'shasum:{sha}')
24-
.replace(/integrity:.*/g, 'integrity:{sha}')
25-
.replace(/"shasum": ".*",/g, '"shasum": "{sha}",')
26-
.replace(/"integrity": ".*",/g, '"integrity": "{sha}",')
27-
}
23+
t.cleanSnapshot = data => cleanZlib(data)
2824

2925
t.test('respects publishConfig.registry, runs appropriate scripts', async t => {
3026
const { npm, joinedOutput, prefix } = await loadMockNpm(t, {

‎test/lib/utils/tar.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@ const t = require('tap')
22
const pack = require('libnpmpack')
33
const ssri = require('ssri')
44
const tmock = require('../../fixtures/tmock')
5+
const { cleanZlib } = require('../../fixtures/clean-snapshot')
56

67
const { getContents } = require('../../../lib/utils/tar.js')
8+
t.cleanSnapshot = data => cleanZlib(data)
79

810
const mockTar = ({ notice }) => tmock(t, '{LIB}/utils/tar.js', {
911
'proc-log': {
@@ -121,13 +123,15 @@ t.test('should getContents of a tarball', async (t) => {
121123
algorithms: ['sha1', 'sha512'],
122124
})
123125

126+
// zlib is nondeterministic
127+
t.match(tarballContents.shasum, /^[0-9a-f]{40}$/)
128+
delete tarballContents.shasum
124129
t.strictSame(tarballContents, {
125130
id: 'my-cool-pkg@1.0.0',
126131
name: 'my-cool-pkg',
127132
version: '1.0.0',
128-
size: 146,
133+
size: tarball.length,
129134
unpackedSize: 49,
130-
shasum: 'b8379c5e69693cdda73aec3d81dae1d11c1e75bd',
131135
integrity: ssri.parse(integrity.sha512[0]),
132136
filename: 'my-cool-pkg-1.0.0.tgz',
133137
files: [{ path: 'package.json', size: 49, mode: 420 }],

0 commit comments

Comments
 (0)
Please sign in to comment.