Skip to content

Commit aec340b

Browse files
deokjinkimjuanarbol
authored andcommitted
fs: refactor to use validateInteger
PR-URL: #46008 Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
1 parent 441d9de commit aec340b

6 files changed

+3
-20
lines changed

lib/internal/fs/utils.js

+2-9
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ const {
1010
FunctionPrototypeCall,
1111
Number,
1212
NumberIsFinite,
13-
NumberIsInteger,
1413
MathMin,
1514
MathRound,
1615
ObjectIs,
@@ -863,14 +862,8 @@ const getValidMode = hideStackFrames((mode, type) => {
863862
if (mode == null) {
864863
return def;
865864
}
866-
if (NumberIsInteger(mode) && mode >= min && mode <= max) {
867-
return mode;
868-
}
869-
if (typeof mode !== 'number') {
870-
throw new ERR_INVALID_ARG_TYPE('mode', 'integer', mode);
871-
}
872-
throw new ERR_OUT_OF_RANGE(
873-
'mode', `an integer >= ${min} && <= ${max}`, mode);
865+
validateInteger(mode, 'mode', min, max);
866+
return mode;
874867
});
875868

876869
const validateStringAfterArrayBufferView = hideStackFrames((buffer, name) => {

test/parallel/test-fs-access.js

-4
Original file line numberDiff line numberDiff line change
@@ -170,14 +170,12 @@ fs.accessSync(readWriteFile, mode);
170170
() => fs.access(readWriteFile, mode, common.mustNotCall()),
171171
{
172172
code: 'ERR_INVALID_ARG_TYPE',
173-
message: /"mode" argument.+integer/
174173
}
175174
);
176175
assert.throws(
177176
() => fs.accessSync(readWriteFile, mode),
178177
{
179178
code: 'ERR_INVALID_ARG_TYPE',
180-
message: /"mode" argument.+integer/
181179
}
182180
);
183181
});
@@ -194,14 +192,12 @@ fs.accessSync(readWriteFile, mode);
194192
() => fs.access(readWriteFile, mode, common.mustNotCall()),
195193
{
196194
code: 'ERR_OUT_OF_RANGE',
197-
message: /"mode".+It must be an integer >= 0 && <= 7/
198195
}
199196
);
200197
assert.throws(
201198
() => fs.accessSync(readWriteFile, mode),
202199
{
203200
code: 'ERR_OUT_OF_RANGE',
204-
message: /"mode".+It must be an integer >= 0 && <= 7/
205201
}
206202
);
207203
});

test/parallel/test-fs-copyfile.js

-2
Original file line numberDiff line numberDiff line change
@@ -156,8 +156,6 @@ assert.throws(() => {
156156
}, {
157157
code: 'ERR_OUT_OF_RANGE',
158158
name: 'RangeError',
159-
message: 'The value of "mode" is out of range. It must be an integer ' +
160-
'>= 0 && <= 7. Received 8'
161159
});
162160

163161
assert.throws(() => {

test/parallel/test-fs-error-messages.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -662,8 +662,7 @@ if (!common.isAIX) {
662662
// Check copyFile with invalid modes.
663663
{
664664
const validateError = {
665-
message: /"mode".+must be an integer >= 0 && <= 7\. Received -1/,
666-
code: 'ERR_OUT_OF_RANGE'
665+
code: 'ERR_OUT_OF_RANGE',
667666
};
668667

669668
assert.throws(

test/parallel/test-fs-promises-file-handle-sync.js

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ async function validate() {
1414
copyFile(fixtures.path('baz.js'), dest, 'r'),
1515
{
1616
code: 'ERR_INVALID_ARG_TYPE',
17-
message: /mode.*integer.*string/
1817
}
1918
);
2019
await copyFile(fixtures.path('baz.js'), dest);

test/parallel/test-fs-promises.js

-2
Original file line numberDiff line numberDiff line change
@@ -64,15 +64,13 @@ assert.strictEqual(
6464
access(__filename, 8),
6565
{
6666
code: 'ERR_OUT_OF_RANGE',
67-
message: /"mode".*must be an integer >= 0 && <= 7\. Received 8$/
6867
}
6968
);
7069

7170
assert.rejects(
7271
access(__filename, { [Symbol.toPrimitive]() { return 5; } }),
7372
{
7473
code: 'ERR_INVALID_ARG_TYPE',
75-
message: /"mode" argument.+integer\. Received an instance of Object$/
7674
}
7775
);
7876
}

0 commit comments

Comments
 (0)