Skip to content

Commit e43195b

Browse files
committed
tools,test: add linter rule for mustSucceed
1 parent c275bf0 commit e43195b

20 files changed

+161
-97
lines changed

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/async-iife-no-unused-result: error

test/parallel/test-crypto-hkdf.js

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,7 @@ const {
123123
assert(syncResult instanceof ArrayBuffer);
124124
let is_async = false;
125125
hkdf(hash, secret, salt, info, length,
126-
common.mustCall((err, asyncResult) => {
127-
assert.ifError(err);
126+
common.mustSucceed((asyncResult) => {
128127
assert(is_async);
129128
assert(asyncResult instanceof ArrayBuffer);
130129
assert.deepStrictEqual(syncResult, asyncResult);
@@ -141,8 +140,7 @@ const {
141140

142141
const syncResult = hkdfSync(hash, buf_secret, buf_salt, buf_info, length);
143142
hkdf(hash, buf_secret, buf_salt, buf_info, length,
144-
common.mustCall((err, asyncResult) => {
145-
assert.ifError(err);
143+
common.mustSucceed((asyncResult) => {
146144
assert.deepStrictEqual(syncResult, asyncResult);
147145
}));
148146
}
@@ -154,8 +152,7 @@ const {
154152

155153
const syncResult = hkdfSync(hash, key_secret, buf_salt, buf_info, length);
156154
hkdf(hash, key_secret, buf_salt, buf_info, length,
157-
common.mustCall((err, asyncResult) => {
158-
assert.ifError(err);
155+
common.mustSucceed((asyncResult) => {
159156
assert.deepStrictEqual(syncResult, asyncResult);
160157
}));
161158
}
@@ -167,8 +164,7 @@ const {
167164

168165
const syncResult = hkdfSync(hash, ta_secret, ta_salt, ta_info, length);
169166
hkdf(hash, ta_secret, ta_salt, ta_info, length,
170-
common.mustCall((err, asyncResult) => {
171-
assert.ifError(err);
167+
common.mustSucceed((asyncResult) => {
172168
assert.deepStrictEqual(syncResult, asyncResult);
173169
}));
174170
}
@@ -185,8 +181,7 @@ const {
185181
ta_info.buffer,
186182
length);
187183
hkdf(hash, ta_secret, ta_salt, ta_info, length,
188-
common.mustCall((err, asyncResult) => {
189-
assert.ifError(err);
184+
common.mustSucceed((asyncResult) => {
190185
assert.deepStrictEqual(syncResult, asyncResult);
191186
}));
192187
}
@@ -203,8 +198,7 @@ const {
203198
sa_info,
204199
length);
205200
hkdf(hash, ta_secret, sa_salt, sa_info, length,
206-
common.mustCall((err, asyncResult) => {
207-
assert.ifError(err);
201+
common.mustSucceed((asyncResult) => {
208202
assert.deepStrictEqual(syncResult, asyncResult);
209203
}));
210204
}

test/parallel/test-crypto-random.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,8 +166,7 @@ common.expectWarning('DeprecationWarning',
166166
new SharedArrayBuffer(10)
167167
].forEach((buf) => {
168168
const before = Buffer.from(buf).toString('hex');
169-
crypto.randomFill(buf, common.mustCall((err, buf) => {
170-
assert.ifError(err);
169+
crypto.randomFill(buf, common.mustSucceed((buf) => {
171170
const after = Buffer.from(buf).toString('hex');
172171
assert.notStrictEqual(before, after);
173172
}));

test/parallel/test-crypto-secret-keygen.js

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ assert.throws(() => generateKeySync('aes', { length: 123 }), {
7676
const keybuf = key.export();
7777
assert.strictEqual(keybuf.byteLength, 128 / 8);
7878

79-
generateKey('aes', { length: 128 }, common.mustCall((err, key) => {
80-
assert.ifError(err);
79+
generateKey('aes', { length: 128 }, common.mustSucceed((key) => {
8180
assert(key);
8281
const keybuf = key.export();
8382
assert.strictEqual(keybuf.byteLength, 128 / 8);
@@ -90,8 +89,7 @@ assert.throws(() => generateKeySync('aes', { length: 123 }), {
9089
const keybuf = key.export();
9190
assert.strictEqual(keybuf.byteLength, 256 / 8);
9291

93-
generateKey('aes', { length: 256 }, common.mustCall((err, key) => {
94-
assert.ifError(err);
92+
generateKey('aes', { length: 256 }, common.mustSucceed((key) => {
9593
assert(key);
9694
const keybuf = key.export();
9795
assert.strictEqual(keybuf.byteLength, 256 / 8);
@@ -104,8 +102,7 @@ assert.throws(() => generateKeySync('aes', { length: 123 }), {
104102
const keybuf = key.export();
105103
assert.strictEqual(keybuf.byteLength, Math.floor(123 / 8));
106104

107-
generateKey('hmac', { length: 123 }, common.mustCall((err, key) => {
108-
assert.ifError(err);
105+
generateKey('hmac', { length: 123 }, common.mustSucceed((key) => {
109106
assert(key);
110107
const keybuf = key.export();
111108
assert.strictEqual(keybuf.byteLength, Math.floor(123 / 8));

test/parallel/test-dgram-connect-send-callback-buffer-length.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ const buf = Buffer.allocUnsafe(256);
1010
const offset = 20;
1111
const len = buf.length - offset;
1212

13-
const messageSent = common.mustCall(function messageSent(err, bytes) {
14-
assert.ifError(err);
13+
const messageSent = common.mustSucceed(function messageSent(bytes) {
1514
assert.notStrictEqual(bytes, buf.length);
1615
assert.strictEqual(bytes, buf.length - offset);
1716
client.close();

test/parallel/test-dgram-send-callback-buffer-length-empty-address.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ const buf = Buffer.alloc(256, 'x');
1010
const offset = 20;
1111
const len = buf.length - offset;
1212

13-
const onMessage = common.mustCall(function messageSent(err, bytes) {
14-
assert.ifError(err);
13+
const onMessage = common.mustSucceed(function messageSent(bytes) {
1514
assert.notStrictEqual(bytes, buf.length);
1615
assert.strictEqual(bytes, buf.length - offset);
1716
client.close();

test/parallel/test-dgram-send-callback-buffer-length.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,7 @@ const buf = Buffer.allocUnsafe(256);
3131
const offset = 20;
3232
const len = buf.length - offset;
3333

34-
const messageSent = common.mustCall(function messageSent(err, bytes) {
35-
assert.ifError(err);
34+
const messageSent = common.mustSucceed(function messageSent(bytes) {
3635
assert.notStrictEqual(bytes, buf.length);
3736
assert.strictEqual(bytes, buf.length - offset);
3837
client.close();

test/parallel/test-dgram-send-callback-multi-buffer-empty-address.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ const dgram = require('dgram');
66

77
const client = dgram.createSocket('udp4');
88

9-
const messageSent = common.mustCall(function messageSent(err, bytes) {
10-
assert.ifError(err);
9+
const messageSent = common.mustSucceed(function messageSent(bytes) {
1110
assert.strictEqual(bytes, buf1.length + buf2.length);
1211
});
1312

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
if (!common.hasCrypto)
5+
common.skip('missing crypto');
6+
7+
common.skipIfEslintMissing();
8+
9+
const RuleTester = require('../../tools/node_modules/eslint').RuleTester;
10+
const rule = require('../../tools/eslint-rules/prefer-common-mustsucceed');
11+
12+
const msg1 = 'Please use common.mustSucceed instead of ' +
13+
'common.mustCall(assert.ifError).';
14+
const msg2 = 'Please use common.mustSucceed instead of ' +
15+
'common.mustCall with assert.ifError.';
16+
17+
new RuleTester({
18+
parserOptions: { ecmaVersion: 2015 }
19+
}).run('prefer-common-mustsucceed', rule, {
20+
valid: [
21+
'foo((err) => assert.ifError(err))',
22+
'foo(function(err) { assert.ifError(err) })',
23+
'foo(assert.ifError)',
24+
'common.mustCall((err) => err)'
25+
],
26+
invalid: [
27+
{
28+
code: 'common.mustCall(assert.ifError)',
29+
errors: [{ message: msg1 }]
30+
},
31+
{
32+
code: 'common.mustCall((err) => assert.ifError(err))',
33+
errors: [{ message: msg2 }]
34+
},
35+
{
36+
code: 'common.mustCall((e) => assert.ifError(e))',
37+
errors: [{ message: msg2 }]
38+
},
39+
{
40+
code: 'common.mustCall(function(e) { assert.ifError(e); })',
41+
errors: [{ message: msg2 }]
42+
},
43+
{
44+
code: 'common.mustCall(function(e) { return assert.ifError(e); })',
45+
errors: [{ message: msg2 }]
46+
},
47+
{
48+
code: 'common.mustCall(function(e) {{ assert.ifError(e); }})',
49+
errors: [{ message: msg2 }]
50+
}
51+
]
52+
});

test/parallel/test-fs-append-file.js

Lines changed: 10 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,8 @@ const throwNextTick = (e) => { process.nextTick(() => { throw e; }); };
4545
{
4646
const filename = join(tmpdir.path, 'append.txt');
4747

48-
fs.appendFile(filename, s, common.mustCall(function(e) {
49-
assert.ifError(e);
50-
51-
fs.readFile(filename, common.mustCall(function(e, buffer) {
52-
assert.ifError(e);
48+
fs.appendFile(filename, s, common.mustSucceed(() => {
49+
fs.readFile(filename, common.mustSucceed((buffer) => {
5350
assert.strictEqual(Buffer.byteLength(s), buffer.length);
5451
}));
5552
}));
@@ -72,11 +69,8 @@ const throwNextTick = (e) => { process.nextTick(() => { throw e; }); };
7269
const filename = join(tmpdir.path, 'append-non-empty.txt');
7370
fs.writeFileSync(filename, currentFileData);
7471

75-
fs.appendFile(filename, s, common.mustCall(function(e) {
76-
assert.ifError(e);
77-
78-
fs.readFile(filename, common.mustCall(function(e, buffer) {
79-
assert.ifError(e);
72+
fs.appendFile(filename, s, common.mustSucceed(() => {
73+
fs.readFile(filename, common.mustSucceed((buffer) => {
8074
assert.strictEqual(Buffer.byteLength(s) + currentFileData.length,
8175
buffer.length);
8276
}));
@@ -104,11 +98,8 @@ const throwNextTick = (e) => { process.nextTick(() => { throw e; }); };
10498

10599
const buf = Buffer.from(s, 'utf8');
106100

107-
fs.appendFile(filename, buf, common.mustCall((e) => {
108-
assert.ifError(e);
109-
110-
fs.readFile(filename, common.mustCall((e, buffer) => {
111-
assert.ifError(e);
101+
fs.appendFile(filename, buf, common.mustSucceed(() => {
102+
fs.readFile(filename, common.mustSucceed((buffer) => {
112103
assert.strictEqual(buf.length + currentFileData.length, buffer.length);
113104
}));
114105
}));
@@ -166,17 +157,10 @@ const throwNextTick = (e) => { process.nextTick(() => { throw e; }); };
166157
const filename = join(tmpdir.path, 'append-descriptors.txt');
167158
fs.writeFileSync(filename, currentFileData);
168159

169-
fs.open(filename, 'a+', common.mustCall((e, fd) => {
170-
assert.ifError(e);
171-
172-
fs.appendFile(fd, s, common.mustCall((e) => {
173-
assert.ifError(e);
174-
175-
fs.close(fd, common.mustCall((e) => {
176-
assert.ifError(e);
177-
178-
fs.readFile(filename, common.mustCall((e, buffer) => {
179-
assert.ifError(e);
160+
fs.open(filename, 'a+', common.mustSucceed((fd) => {
161+
fs.appendFile(fd, s, common.mustSucceed(() => {
162+
fs.close(fd, common.mustSucceed(() => {
163+
fs.readFile(filename, common.mustSucceed((buffer) => {
180164
assert.strictEqual(Buffer.byteLength(s) + currentFileData.length,
181165
buffer.length);
182166
}));

0 commit comments

Comments
 (0)