diff --git a/test/parallel/test-whatwg-encoding-textdecoder.js b/test/parallel/test-whatwg-encoding-textdecoder.js index 55c601364d0add..8011f285fcb2b7 100644 --- a/test/parallel/test-whatwg-encoding-textdecoder.js +++ b/test/parallel/test-whatwg-encoding-textdecoder.js @@ -90,18 +90,35 @@ if (common.hasIntl) { } { - const fn = TextDecoder.prototype[inspect]; - assert.doesNotThrow(() => { - fn.call(new TextDecoder(), Infinity, {}); - }); - - [{}, [], true, 1, '', new TextEncoder()].forEach((i) => { - assert.throws(() => fn.call(i, Infinity, {}), - common.expectsError({ - code: 'ERR_INVALID_THIS', - type: TypeError, - message: 'Value of "this" must be of type TextDecoder' - })); + const inspectFn = TextDecoder.prototype[inspect]; + const decodeFn = TextDecoder.prototype.decode; + const { + encoding: { get: encodingGetter }, + fatal: { get: fatalGetter }, + ignoreBOM: { get: ignoreBOMGetter }, + } = Object.getOwnPropertyDescriptors(TextDecoder.prototype); + + const instance = new TextDecoder(); + + const expectedError = { + code: 'ERR_INVALID_THIS', + type: TypeError, + message: 'Value of "this" must be of type TextDecoder' + }; + + assert.doesNotThrow(() => inspectFn.call(instance, Infinity, {})); + assert.doesNotThrow(() => decodeFn.call(instance)); + assert.doesNotThrow(() => encodingGetter.call(instance)); + assert.doesNotThrow(() => fatalGetter.call(instance)); + assert.doesNotThrow(() => ignoreBOMGetter.call(instance)); + + const invalidThisArgs = [{}, [], true, 1, '', new TextEncoder()]; + invalidThisArgs.forEach((i) => { + common.expectsError(() => inspectFn.call(i, Infinity, {}), expectedError); + common.expectsError(() => decodeFn.call(i), expectedError); + common.expectsError(() => encodingGetter.call(i), expectedError); + common.expectsError(() => fatalGetter.call(i), expectedError); + common.expectsError(() => ignoreBOMGetter.call(i), expectedError); }); } diff --git a/test/parallel/test-whatwg-encoding-textencoder.js b/test/parallel/test-whatwg-encoding-textencoder.js index 2e8ca9e9abafd1..4096a02432e900 100644 --- a/test/parallel/test-whatwg-encoding-textencoder.js +++ b/test/parallel/test-whatwg-encoding-textencoder.js @@ -35,17 +35,27 @@ assert(TextEncoder); } { - const fn = TextEncoder.prototype[inspect]; - assert.doesNotThrow(() => { - fn.call(new TextEncoder(), Infinity, {}); - }); - - [{}, [], true, 1, '', new TextDecoder()].forEach((i) => { - assert.throws(() => fn.call(i, Infinity, {}), - common.expectsError({ - code: 'ERR_INVALID_THIS', - type: TypeError, - message: 'Value of "this" must be of type TextEncoder' - })); + const inspectFn = TextEncoder.prototype[inspect]; + const encodeFn = TextEncoder.prototype.encode; + const encodingGetter = + Object.getOwnPropertyDescriptor(TextEncoder.prototype, 'encoding').get; + + const instance = new TextEncoder(); + + const expectedError = { + code: 'ERR_INVALID_THIS', + type: TypeError, + message: 'Value of "this" must be of type TextEncoder' + }; + + assert.doesNotThrow(() => inspectFn.call(instance, Infinity, {})); + assert.doesNotThrow(() => encodeFn.call(instance)); + assert.doesNotThrow(() => encodingGetter.call(instance)); + + const invalidThisArgs = [{}, [], true, 1, '', new TextDecoder()]; + invalidThisArgs.forEach((i) => { + common.expectsError(() => inspectFn.call(i, Infinity, {}), expectedError); + common.expectsError(() => encodeFn.call(i), expectedError); + common.expectsError(() => encodingGetter.call(i), expectedError); }); }