diff options
author | Yoshiya Hinosawa <stibium121@gmail.com> | 2023-02-21 00:35:04 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-20 16:35:04 +0100 |
commit | 6915a9b7a701dde0e1078867961c9a91811c1850 (patch) | |
tree | e6822f2b8400c7c7941d3cb9ace59842389b5bc9 /cli/tests/node_compat/test/parallel/test-stream-inheritance.js | |
parent | a1cd2a5915c13f6a9b8eafa3807e143a02616bc1 (diff) |
test(ext/node): more node compat tests (#17827)
This PR adds the remaining ~650 Node.js compat test cases from std/node.
Among these 650 cases, about 130 cases are now failing. These failing
cases are prefixed with `TODO:` in `tests/node_compat/config.json`.
These will be addressed in later PRs.
Diffstat (limited to 'cli/tests/node_compat/test/parallel/test-stream-inheritance.js')
-rw-r--r-- | cli/tests/node_compat/test/parallel/test-stream-inheritance.js | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/cli/tests/node_compat/test/parallel/test-stream-inheritance.js b/cli/tests/node_compat/test/parallel/test-stream-inheritance.js new file mode 100644 index 000000000..b8f740d15 --- /dev/null +++ b/cli/tests/node_compat/test/parallel/test-stream-inheritance.js @@ -0,0 +1,70 @@ +// deno-fmt-ignore-file +// deno-lint-ignore-file + +// Copyright Joyent and Node contributors. All rights reserved. MIT license. +// Taken from Node 18.12.1 +// This file is automatically generated by "node/_tools/setup.ts". Do not modify this file manually + +'use strict'; +require('../common'); +const assert = require('assert'); +const { Readable, Writable, Duplex, Transform } = require('stream'); + +const readable = new Readable({ read() {} }); +const writable = new Writable({ write() {} }); +const duplex = new Duplex({ read() {}, write() {} }); +const transform = new Transform({ transform() {} }); + +assert.ok(readable instanceof Readable); +assert.ok(!(writable instanceof Readable)); +assert.ok(duplex instanceof Readable); +assert.ok(transform instanceof Readable); + +assert.ok(!(readable instanceof Writable)); +assert.ok(writable instanceof Writable); +assert.ok(duplex instanceof Writable); +assert.ok(transform instanceof Writable); + +assert.ok(!(readable instanceof Duplex)); +assert.ok(!(writable instanceof Duplex)); +assert.ok(duplex instanceof Duplex); +assert.ok(transform instanceof Duplex); + +assert.ok(!(readable instanceof Transform)); +assert.ok(!(writable instanceof Transform)); +assert.ok(!(duplex instanceof Transform)); +assert.ok(transform instanceof Transform); + +assert.ok(!(null instanceof Writable)); +assert.ok(!(undefined instanceof Writable)); + +// Simple inheritance check for `Writable` works fine in a subclass constructor. +function CustomWritable() { + assert.ok( + this instanceof CustomWritable, + `${this} does not inherit from CustomWritable` + ); + assert.ok( + this instanceof Writable, + `${this} does not inherit from Writable` + ); +} + +Object.setPrototypeOf(CustomWritable, Writable); +Object.setPrototypeOf(CustomWritable.prototype, Writable.prototype); + +new CustomWritable(); + +assert.throws( + CustomWritable, + { + code: 'ERR_ASSERTION', + constructor: assert.AssertionError, + message: 'undefined does not inherit from CustomWritable' + } +); + +class OtherCustomWritable extends Writable {} + +assert(!(new OtherCustomWritable() instanceof CustomWritable)); +assert(!(new CustomWritable() instanceof OtherCustomWritable)); |