Skip to content

Commit 16c3b24

Browse files
authored
Improve test stability by getting independent of module id ordering in more places (#4401)
* Improve test stability by getting independent of module id ordering in more places * Make test file reads slower in parallel read tests
1 parent 1d76887 commit 16c3b24

14 files changed

Lines changed: 272 additions & 251 deletions

File tree

test/function/samples/custom-module-options/_config.js

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const assert = require('assert');
2+
const { getObject } = require('../../../utils');
23

34
function getTestPlugin(index) {
45
const pluginName = `test-${index}`;
@@ -40,28 +41,26 @@ module.exports = {
4041
name: 'wrap-up',
4142
buildEnd() {
4243
assert.deepStrictEqual(
43-
[...this.getModuleIds()]
44-
.filter(id => id.includes('resolve'))
45-
.sort()
46-
.map(id => ({ id, meta: this.getModuleInfo(id).meta })),
47-
[
48-
{
49-
id: 'resolve1-load2-transform3',
50-
meta: {
51-
'test-1': { resolved: 1 },
52-
'test-2': { loaded: 2 },
53-
'test-3': { transformed: 3 }
54-
}
44+
getObject(
45+
[...this.getModuleIds()]
46+
.filter(id => id.includes('resolve'))
47+
.map(id => [id, this.getModuleInfo(id).meta])
48+
),
49+
{
50+
'resolve1-load2-transform3': {
51+
'test-1': { resolved: 1 },
52+
'test-2': { loaded: 2 },
53+
'test-3': { transformed: 3 }
5554
},
56-
{
57-
id: 'resolve2-load2-transform3',
58-
meta: { 'test-2': { loaded: 2 }, 'test-3': { transformed: 3 } }
55+
'resolve2-load2-transform3': {
56+
'test-2': { loaded: 2 },
57+
'test-3': { transformed: 3 }
5958
},
60-
{
61-
id: 'resolve3-load3-transform1-transform3',
62-
meta: { 'test-3': { transformed: 3 }, 'test-1': { transformed: 1 } }
59+
'resolve3-load3-transform1-transform3': {
60+
'test-3': { transformed: 3 },
61+
'test-1': { transformed: 1 }
6362
}
64-
]
63+
}
6564
);
6665
}
6766
}

test/function/samples/deprecated/manual-chunks-info/_config.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
const assert = require('assert');
22
const path = require('path');
3+
const { getObject } = require('../../../../utils');
34

45
function getId(name) {
56
return path.join(__dirname, `${name}.js`);
@@ -13,9 +14,11 @@ module.exports = {
1314
output: {
1415
manualChunks(id, { getModuleIds, getModuleInfo }) {
1516
assert.deepStrictEqual(
16-
JSON.parse(JSON.stringify([...getModuleIds()].sort().map(id => getModuleInfo(id)))),
17-
[
18-
{
17+
getObject(
18+
[...getModuleIds()].map(id => [id, JSON.parse(JSON.stringify(getModuleInfo(id)))])
19+
),
20+
{
21+
[getId('dynamic')]: {
1922
id: getId('dynamic'),
2023
ast: {
2124
type: 'Program',
@@ -107,7 +110,7 @@ module.exports = {
107110
meta: {},
108111
syntheticNamedExports: false
109112
},
110-
{
113+
[getId('lib')]: {
111114
id: getId('lib'),
112115
ast: {
113116
type: 'Program',
@@ -140,7 +143,7 @@ module.exports = {
140143
meta: {},
141144
syntheticNamedExports: false
142145
},
143-
{
146+
[getId('main')]: {
144147
id: getId('main'),
145148
ast: {
146149
type: 'Program',
@@ -261,7 +264,7 @@ module.exports = {
261264
meta: {},
262265
syntheticNamedExports: false
263266
},
264-
{
267+
external: {
265268
id: 'external',
266269
ast: null,
267270
code: null,
@@ -281,7 +284,7 @@ module.exports = {
281284
meta: {},
282285
syntheticNamedExports: false
283286
}
284-
]
287+
}
285288
);
286289
}
287290
}

test/function/samples/deprecated/resolve-id-external/_config.js

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const assert = require('assert');
22
const path = require('path');
33
const sideEffects = [];
4+
const { getObject } = require('../../../../utils');
45

56
module.exports = {
67
description: 'does not include modules without used exports if moduleSideEffect is false',
@@ -47,33 +48,31 @@ module.exports = {
4748
},
4849
buildEnd() {
4950
assert.deepStrictEqual(
50-
Array.from(this.getModuleIds())
51-
.filter(id => !path.isAbsolute(id))
52-
.sort()
53-
.map(id => ({ id, hasModuleSideEffects: this.getModuleInfo(id).hasModuleSideEffects })),
54-
[
55-
{ id: 'sideeffects-false-usereffects-false', hasModuleSideEffects: false },
56-
{
57-
id: 'sideeffects-false-usereffects-false-unused-import',
58-
hasModuleSideEffects: false
59-
},
60-
{ id: 'sideeffects-false-usereffects-false-used-import', hasModuleSideEffects: false },
61-
{ id: 'sideeffects-false-usereffects-true', hasModuleSideEffects: false },
62-
{ id: 'sideeffects-false-usereffects-true-unused-import', hasModuleSideEffects: false },
63-
{ id: 'sideeffects-false-usereffects-true-used-import', hasModuleSideEffects: false },
64-
{ id: 'sideeffects-null-usereffects-false', hasModuleSideEffects: false },
65-
{ id: 'sideeffects-null-usereffects-false-unused-import', hasModuleSideEffects: false },
66-
{ id: 'sideeffects-null-usereffects-false-used-import', hasModuleSideEffects: false },
67-
{ id: 'sideeffects-null-usereffects-true', hasModuleSideEffects: true },
68-
{ id: 'sideeffects-null-usereffects-true-unused-import', hasModuleSideEffects: true },
69-
{ id: 'sideeffects-null-usereffects-true-used-import', hasModuleSideEffects: true },
70-
{ id: 'sideeffects-true-usereffects-false', hasModuleSideEffects: true },
71-
{ id: 'sideeffects-true-usereffects-false-unused-import', hasModuleSideEffects: true },
72-
{ id: 'sideeffects-true-usereffects-false-used-import', hasModuleSideEffects: true },
73-
{ id: 'sideeffects-true-usereffects-true', hasModuleSideEffects: true },
74-
{ id: 'sideeffects-true-usereffects-true-unused-import', hasModuleSideEffects: true },
75-
{ id: 'sideeffects-true-usereffects-true-used-import', hasModuleSideEffects: true }
76-
]
51+
getObject(
52+
[...this.getModuleIds()]
53+
.filter(id => !path.isAbsolute(id))
54+
.map(id => [id, this.getModuleInfo(id).hasModuleSideEffects])
55+
),
56+
{
57+
'sideeffects-false-usereffects-false': false,
58+
'sideeffects-false-usereffects-false-unused-import': false,
59+
'sideeffects-false-usereffects-false-used-import': false,
60+
'sideeffects-false-usereffects-true': false,
61+
'sideeffects-false-usereffects-true-unused-import': false,
62+
'sideeffects-false-usereffects-true-used-import': false,
63+
'sideeffects-null-usereffects-false': false,
64+
'sideeffects-null-usereffects-false-unused-import': false,
65+
'sideeffects-null-usereffects-false-used-import': false,
66+
'sideeffects-null-usereffects-true': true,
67+
'sideeffects-null-usereffects-true-unused-import': true,
68+
'sideeffects-null-usereffects-true-used-import': true,
69+
'sideeffects-true-usereffects-false': true,
70+
'sideeffects-true-usereffects-false-unused-import': true,
71+
'sideeffects-true-usereffects-false-used-import': true,
72+
'sideeffects-true-usereffects-true': true,
73+
'sideeffects-true-usereffects-true-unused-import': true,
74+
'sideeffects-true-usereffects-true-used-import': true
75+
}
7776
);
7877
}
7978
}

test/function/samples/deprecated/resolve-id/_config.js

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
const assert = require('assert');
22
const path = require('path');
3+
const { getObject } = require('../../../../utils');
4+
35
const sideEffects = [];
46

57
module.exports = {
@@ -55,33 +57,31 @@ module.exports = {
5557
},
5658
buildEnd() {
5759
assert.deepStrictEqual(
58-
Array.from(this.getModuleIds())
59-
.filter(id => !path.isAbsolute(id))
60-
.sort()
61-
.map(id => ({ id, hasModuleSideEffects: this.getModuleInfo(id).hasModuleSideEffects })),
62-
[
63-
{ id: 'sideeffects-false-usereffects-false', hasModuleSideEffects: false },
64-
{
65-
id: 'sideeffects-false-usereffects-false-unused-import',
66-
hasModuleSideEffects: false
67-
},
68-
{ id: 'sideeffects-false-usereffects-false-used-import', hasModuleSideEffects: false },
69-
{ id: 'sideeffects-false-usereffects-true', hasModuleSideEffects: false },
70-
{ id: 'sideeffects-false-usereffects-true-unused-import', hasModuleSideEffects: false },
71-
{ id: 'sideeffects-false-usereffects-true-used-import', hasModuleSideEffects: false },
72-
{ id: 'sideeffects-null-usereffects-false', hasModuleSideEffects: false },
73-
{ id: 'sideeffects-null-usereffects-false-unused-import', hasModuleSideEffects: false },
74-
{ id: 'sideeffects-null-usereffects-false-used-import', hasModuleSideEffects: false },
75-
{ id: 'sideeffects-null-usereffects-true', hasModuleSideEffects: true },
76-
{ id: 'sideeffects-null-usereffects-true-unused-import', hasModuleSideEffects: true },
77-
{ id: 'sideeffects-null-usereffects-true-used-import', hasModuleSideEffects: true },
78-
{ id: 'sideeffects-true-usereffects-false', hasModuleSideEffects: true },
79-
{ id: 'sideeffects-true-usereffects-false-unused-import', hasModuleSideEffects: true },
80-
{ id: 'sideeffects-true-usereffects-false-used-import', hasModuleSideEffects: true },
81-
{ id: 'sideeffects-true-usereffects-true', hasModuleSideEffects: true },
82-
{ id: 'sideeffects-true-usereffects-true-unused-import', hasModuleSideEffects: true },
83-
{ id: 'sideeffects-true-usereffects-true-used-import', hasModuleSideEffects: true }
84-
]
60+
getObject(
61+
[...this.getModuleIds()]
62+
.filter(id => !path.isAbsolute(id))
63+
.map(id => [id, this.getModuleInfo(id).hasModuleSideEffects])
64+
),
65+
{
66+
'sideeffects-false-usereffects-false': false,
67+
'sideeffects-false-usereffects-false-unused-import': false,
68+
'sideeffects-false-usereffects-false-used-import': false,
69+
'sideeffects-false-usereffects-true': false,
70+
'sideeffects-false-usereffects-true-unused-import': false,
71+
'sideeffects-false-usereffects-true-used-import': false,
72+
'sideeffects-null-usereffects-false': false,
73+
'sideeffects-null-usereffects-false-unused-import': false,
74+
'sideeffects-null-usereffects-false-used-import': false,
75+
'sideeffects-null-usereffects-true': true,
76+
'sideeffects-null-usereffects-true-unused-import': true,
77+
'sideeffects-null-usereffects-true-used-import': true,
78+
'sideeffects-true-usereffects-false': true,
79+
'sideeffects-true-usereffects-false-unused-import': true,
80+
'sideeffects-true-usereffects-false-used-import': true,
81+
'sideeffects-true-usereffects-true': true,
82+
'sideeffects-true-usereffects-true-unused-import': true,
83+
'sideeffects-true-usereffects-true-used-import': true
84+
}
8585
);
8686
}
8787
}

0 commit comments

Comments
 (0)