Browse Source

string_decoder: Migrate to use internal/errors

PR-URL: https://github.com/nodejs/node/pull/14682
Refs: https://github.com/nodejs/node/issues/11273
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
canary-base
Weijia Wang 7 years ago
committed by Ruben Bridgewater
parent
commit
eb4940e2d2
No known key found for this signature in database GPG Key ID: F07496B3EB3C1762
  1. 3
      lib/string_decoder.js
  2. 24
      test/parallel/test-string-decoder.js

3
lib/string_decoder.js

@ -23,6 +23,7 @@
const Buffer = require('buffer').Buffer;
const internalUtil = require('internal/util');
const errors = require('internal/errors');
const isEncoding = Buffer[internalUtil.kIsEncodingSymbol];
// Do not cache `Buffer.isEncoding` when checking encoding names as some
@ -31,7 +32,7 @@ function normalizeEncoding(enc) {
const nenc = internalUtil.normalizeEncoding(enc);
if (typeof nenc !== 'string' &&
(Buffer.isEncoding === isEncoding || !Buffer.isEncoding(enc)))
throw new Error(`Unknown encoding: ${enc}`);
throw new errors.TypeError('ERR_UNKNOWN_ENCODING', enc);
return nenc || enc;
}

24
test/parallel/test-string-decoder.js

@ -20,7 +20,7 @@
// USE OR OTHER DEALINGS IN THE SOFTWARE.
'use strict';
require('../common');
const common = require('../common');
const assert = require('assert');
const inspect = require('util').inspect;
const StringDecoder = require('string_decoder').StringDecoder;
@ -124,13 +124,23 @@ assert.strictEqual(decoder.write(Buffer.from('3DD8', 'hex')), '');
assert.strictEqual(decoder.write(Buffer.from('4D', 'hex')), '');
assert.strictEqual(decoder.end(), '\ud83d');
assert.throws(() => {
new StringDecoder(1);
}, /^Error: Unknown encoding: 1$/);
common.expectsError(
() => new StringDecoder(1),
{
code: 'ERR_UNKNOWN_ENCODING',
type: TypeError,
message: 'Unknown encoding: 1'
}
);
assert.throws(() => {
new StringDecoder('test');
}, /^Error: Unknown encoding: test$/);
common.expectsError(
() => new StringDecoder('test'),
{
code: 'ERR_UNKNOWN_ENCODING',
type: TypeError,
message: 'Unknown encoding: test'
}
);
// test verifies that StringDecoder will correctly decode the given input
// buffer with the given encoding to the expected output. It will attempt all

Loading…
Cancel
Save