Skip to content

Commit 70cb708

Browse files
tniessenBethGriggs
authored andcommitted
test: add common.mustSucceed
PR-URL: #35086 Reviewed-By: Ruy Adorno <[email protected]> Reviewed-By: Rich Trott <[email protected]>
1 parent 6c4e697 commit 70cb708

File tree

140 files changed

+522
-782
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

140 files changed

+522
-782
lines changed

doc/guides/writing-tests.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,11 @@ const server = http.createServer(common.mustCall((req, res) => {
209209

210210
```
211211

212+
**Note:** Many functions invoke their callback with an `err` value as the first
213+
argument. It is not a good idea to simply pass `common.mustCall()` to those
214+
because `common.mustCall()` will ignore the error. Use `common.mustSucceed()`
215+
instead.
216+
212217
#### Countdown Module
213218

214219
The common [Countdown module](https://github.com/nodejs/node/tree/master/test/common#countdown-module)

test/.eslintrc.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ rules:
5050
node-core/prefer-assert-iferror: error
5151
node-core/prefer-assert-methods: error
5252
node-core/prefer-common-mustnotcall: error
53+
node-core/prefer-common-mustsucceed: error
5354
node-core/crypto-check: error
5455
node-core/eslint-check: error
5556
node-core/inspector-check: error

test/common/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,15 @@ If `fn` is not provided, an empty function will be used.
313313
Returns a function that triggers an `AssertionError` if it is invoked. `msg` is
314314
used as the error message for the `AssertionError`.
315315

316+
### `mustSucceed([fn])`
317+
318+
* `fn` [&lt;Function>][] default = () => {}
319+
* return [&lt;Function>][]
320+
321+
Returns a function that accepts arguments `(err, ...args)`. If `err` is not
322+
`undefined` or `null`, it triggers an `AssertionError`. Otherwise, it calls
323+
`fn(...args)`.
324+
316325
### `nodeProcessAborted(exitCode, signal)`
317326

318327
* `exitCode` [&lt;number>][]

test/common/index.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,14 @@ function mustCall(fn, exact) {
334334
return _mustCallInner(fn, exact, 'exact');
335335
}
336336

337+
function mustSucceed(fn, exact) {
338+
return mustCall(function(err, ...args) {
339+
assert.ifError(err);
340+
if (typeof fn === 'function')
341+
return fn.apply(this, args);
342+
}, exact);
343+
}
344+
337345
function mustCallAtLeast(fn, minimum) {
338346
return _mustCallInner(fn, minimum, 'minimum');
339347
}
@@ -723,6 +731,7 @@ const common = {
723731
mustCall,
724732
mustCallAtLeast,
725733
mustNotCall,
734+
mustSucceed,
726735
nodeProcessAborted,
727736
PIPE,
728737
platformTimeout,

test/doctool/test-doctool-json.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -229,10 +229,8 @@ const testData = [
229229
];
230230

231231
testData.forEach((item) => {
232-
fs.readFile(item.file, 'utf8', common.mustCall((err, input) => {
233-
assert.ifError(err);
234-
toJSON(input, 'foo', common.mustCall((err, output) => {
235-
assert.ifError(err);
232+
fs.readFile(item.file, 'utf8', common.mustSucceed((input) => {
233+
toJSON(input, 'foo', common.mustSucceed((output) => {
236234
assert.deepStrictEqual(output.json, item.json);
237235
}));
238236
}));

test/internet/test-dns-any.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,7 @@ TEST(async function test_sip2sip_for_naptr(done) {
127127
const req = dns.resolve(
128128
'sip2sip.info',
129129
'ANY',
130-
common.mustCall(function(err, ret) {
131-
assert.ifError(err);
130+
common.mustSucceed((ret) => {
132131
validateResult(ret);
133132
done();
134133
}));
@@ -147,8 +146,7 @@ TEST(async function test_google_for_cname_and_srv(done) {
147146
const req = dns.resolve(
148147
'_jabber._tcp.google.com',
149148
'ANY',
150-
common.mustCall(function(err, ret) {
151-
assert.ifError(err);
149+
common.mustSucceed((ret) => {
152150
validateResult(ret);
153151
done();
154152
}));
@@ -167,8 +165,7 @@ TEST(async function test_ptr(done) {
167165
const req = dns.resolve(
168166
'8.8.8.8.in-addr.arpa',
169167
'ANY',
170-
common.mustCall(function(err, ret) {
171-
assert.ifError(err);
168+
common.mustSucceed((ret) => {
172169
validateResult(ret);
173170
done();
174171
}));

test/internet/test-dns-ipv4.js

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,7 @@ TEST(async function test_resolve4(done) {
5050

5151
const req = dns.resolve4(
5252
addresses.INET4_HOST,
53-
common.mustCall((err, ips) => {
54-
assert.ifError(err);
53+
common.mustSucceed((ips) => {
5554
validateResult(ips);
5655
done();
5756
}));
@@ -73,8 +72,7 @@ TEST(async function test_reverse_ipv4(done) {
7372

7473
const req = dns.reverse(
7574
addresses.INET4_IP,
76-
common.mustCall((err, domains) => {
77-
assert.ifError(err);
75+
common.mustSucceed((domains) => {
7876
validateResult(domains);
7977
done();
8078
}));
@@ -92,8 +90,7 @@ TEST(async function test_lookup_ipv4_explicit(done) {
9290

9391
const req = dns.lookup(
9492
addresses.INET4_HOST, 4,
95-
common.mustCall((err, ip, family) => {
96-
assert.ifError(err);
93+
common.mustSucceed((ip, family) => {
9794
validateResult({ address: ip, family });
9895
done();
9996
}));
@@ -111,8 +108,7 @@ TEST(async function test_lookup_ipv4_implicit(done) {
111108

112109
const req = dns.lookup(
113110
addresses.INET4_HOST,
114-
common.mustCall((err, ip, family) => {
115-
assert.ifError(err);
111+
common.mustSucceed((ip, family) => {
116112
validateResult({ address: ip, family });
117113
done();
118114
}));
@@ -130,8 +126,7 @@ TEST(async function test_lookup_ipv4_explicit_object(done) {
130126

131127
const req = dns.lookup(addresses.INET4_HOST, {
132128
family: 4
133-
}, common.mustCall((err, ip, family) => {
134-
assert.ifError(err);
129+
}, common.mustSucceed((ip, family) => {
135130
validateResult({ address: ip, family });
136131
done();
137132
}));
@@ -151,8 +146,7 @@ TEST(async function test_lookup_ipv4_hint_addrconfig(done) {
151146

152147
const req = dns.lookup(addresses.INET4_HOST, {
153148
hints: dns.ADDRCONFIG
154-
}, common.mustCall((err, ip, family) => {
155-
assert.ifError(err);
149+
}, common.mustSucceed((ip, family) => {
156150
validateResult({ address: ip, family });
157151
done();
158152
}));
@@ -169,8 +163,7 @@ TEST(async function test_lookup_ip_ipv4(done) {
169163
validateResult(await dnsPromises.lookup('127.0.0.1'));
170164

171165
const req = dns.lookup('127.0.0.1',
172-
common.mustCall((err, ip, family) => {
173-
assert.ifError(err);
166+
common.mustSucceed((ip, family) => {
174167
validateResult({ address: ip, family });
175168
done();
176169
}));
@@ -187,8 +180,7 @@ TEST(async function test_lookup_localhost_ipv4(done) {
187180
validateResult(await dnsPromises.lookup('localhost', 4));
188181

189182
const req = dns.lookup('localhost', 4,
190-
common.mustCall((err, ip, family) => {
191-
assert.ifError(err);
183+
common.mustSucceed((ip, family) => {
192184
validateResult({ address: ip, family });
193185
done();
194186
}));
@@ -215,8 +207,7 @@ TEST(async function test_lookup_all_ipv4(done) {
215207
const req = dns.lookup(
216208
addresses.INET4_HOST,
217209
{ all: true, family: 4 },
218-
common.mustCall((err, ips) => {
219-
assert.ifError(err);
210+
common.mustSucceed((ips) => {
220211
validateResult(ips);
221212
done();
222213
})
@@ -236,8 +227,7 @@ TEST(async function test_lookupservice_ip_ipv4(done) {
236227

237228
const req = dns.lookupService(
238229
'127.0.0.1', 80,
239-
common.mustCall((err, hostname, service) => {
240-
assert.ifError(err);
230+
common.mustSucceed((hostname, service) => {
241231
validateResult({ hostname, service });
242232
done();
243233
})

test/internet/test-dns-ipv6.js

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,7 @@ TEST(async function test_resolve6(done) {
5252

5353
const req = dns.resolve6(
5454
addresses.INET6_HOST,
55-
common.mustCall((err, ips) => {
56-
assert.ifError(err);
55+
common.mustSucceed((ips) => {
5756
validateResult(ips);
5857
done();
5958
}));
@@ -74,8 +73,7 @@ TEST(async function test_reverse_ipv6(done) {
7473

7574
const req = dns.reverse(
7675
addresses.INET6_IP,
77-
common.mustCall((err, domains) => {
78-
assert.ifError(err);
76+
common.mustSucceed((domains) => {
7977
validateResult(domains);
8078
done();
8179
}));
@@ -94,8 +92,7 @@ TEST(async function test_lookup_ipv6_explicit(done) {
9492
const req = dns.lookup(
9593
addresses.INET6_HOST,
9694
6,
97-
common.mustCall((err, ip, family) => {
98-
assert.ifError(err);
95+
common.mustSucceed((ip, family) => {
9996
validateResult({ address: ip, family });
10097
done();
10198
}));
@@ -126,8 +123,7 @@ TEST(async function test_lookup_ipv6_explicit_object(done) {
126123

127124
const req = dns.lookup(addresses.INET6_HOST, {
128125
family: 6
129-
}, common.mustCall((err, ip, family) => {
130-
assert.ifError(err);
126+
}, common.mustSucceed((ip, family) => {
131127
validateResult({ address: ip, family });
132128
done();
133129
}));
@@ -173,8 +169,7 @@ TEST(async function test_lookup_ip_ipv6(done) {
173169

174170
const req = dns.lookup(
175171
'::1',
176-
common.mustCall((err, ip, family) => {
177-
assert.ifError(err);
172+
common.mustSucceed((ip, family) => {
178173
validateResult({ address: ip, family });
179174
done();
180175
}));
@@ -202,8 +197,7 @@ TEST(async function test_lookup_all_ipv6(done) {
202197
const req = dns.lookup(
203198
addresses.INET6_HOST,
204199
{ all: true, family: 6 },
205-
common.mustCall((err, ips) => {
206-
assert.ifError(err);
200+
common.mustSucceed((ips) => {
207201
validateResult(ips);
208202
done();
209203
})

test/internet/test-http2-issue-32922.js

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
'use strict';
22
const common = require('../common');
3-
const assert = require('assert');
43

54
if (!common.hasCrypto)
65
common.skip('missing crypto');
@@ -29,9 +28,7 @@ function normalSession(cb) {
2928
});
3029
});
3130
}
32-
normalSession(common.mustCall(function(err) {
33-
assert.ifError(err);
34-
}));
31+
normalSession(common.mustSucceed());
3532

3633
// Create a session using a socket that has not yet finished connecting
3734
function socketNotFinished(done) {
@@ -52,9 +49,7 @@ function socketNotFinished(done) {
5249
});
5350
});
5451
}
55-
socketNotFinished(common.mustCall(function(err) {
56-
assert.ifError(err);
57-
}));
52+
socketNotFinished(common.mustSucceed());
5853

5954
// Create a session using a socket that has finished connecting
6055
function socketFinished(done) {
@@ -75,6 +70,4 @@ function socketFinished(done) {
7570
});
7671
});
7772
}
78-
socketFinished(common.mustCall(function(err) {
79-
assert.ifError(err);
80-
}));
73+
socketFinished(common.mustSucceed());

test/parallel/test-c-ares.js

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,20 +43,17 @@ const dnsPromises = dns.promises;
4343
})();
4444

4545
// Try resolution without hostname.
46-
dns.lookup(null, common.mustCall((error, result, addressType) => {
47-
assert.ifError(error);
46+
dns.lookup(null, common.mustSucceed((result, addressType) => {
4847
assert.strictEqual(result, null);
4948
assert.strictEqual(addressType, 4);
5049
}));
5150

52-
dns.lookup('127.0.0.1', common.mustCall((error, result, addressType) => {
53-
assert.ifError(error);
51+
dns.lookup('127.0.0.1', common.mustSucceed((result, addressType) => {
5452
assert.strictEqual(result, '127.0.0.1');
5553
assert.strictEqual(addressType, 4);
5654
}));
5755

58-
dns.lookup('::1', common.mustCall((error, result, addressType) => {
59-
assert.ifError(error);
56+
dns.lookup('::1', common.mustSucceed((result, addressType) => {
6057
assert.strictEqual(result, '::1');
6158
assert.strictEqual(addressType, 6);
6259
}));
@@ -86,8 +83,7 @@ dns.lookup('::1', common.mustCall((error, result, addressType) => {
8683
// so we disable this test on Windows.
8784
// IBMi reports `ENOTFOUND` when get hostname by address 127.0.0.1
8885
if (!common.isWindows && !common.isIBMi) {
89-
dns.reverse('127.0.0.1', common.mustCall(function(error, domains) {
90-
assert.ifError(error);
86+
dns.reverse('127.0.0.1', common.mustSucceed((domains) => {
9187
assert.ok(Array.isArray(domains));
9288
}));
9389

0 commit comments

Comments
 (0)