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

File tree

14 files changed

+272
-251
lines changed

14 files changed

+272
-251
lines changed

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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy