mirror of
https://github.com/denoland/deno.git
synced 2025-09-26 20:29:11 +00:00
fix(ext/node): add assert
property to test context object (#28904)
This commit is contained in:
parent
e12d9b4946
commit
016b02d374
3 changed files with 64 additions and 2 deletions
|
@ -4,10 +4,44 @@ import { primordials } from "ext:core/mod.js";
|
||||||
const {
|
const {
|
||||||
PromisePrototypeThen,
|
PromisePrototypeThen,
|
||||||
ArrayPrototypePush,
|
ArrayPrototypePush,
|
||||||
|
ArrayPrototypeForEach,
|
||||||
SafePromiseAll,
|
SafePromiseAll,
|
||||||
SafePromisePrototypeFinally,
|
SafePromisePrototypeFinally,
|
||||||
} = primordials;
|
} = primordials;
|
||||||
import { notImplemented, warnNotImplemented } from "ext:deno_node/_utils.ts";
|
import { notImplemented, warnNotImplemented } from "ext:deno_node/_utils.ts";
|
||||||
|
import assert from "node:assert";
|
||||||
|
|
||||||
|
const methodsToCopy = [
|
||||||
|
"deepEqual",
|
||||||
|
"deepStrictEqual",
|
||||||
|
"doesNotMatch",
|
||||||
|
"doesNotReject",
|
||||||
|
"doesNotThrow",
|
||||||
|
"equal",
|
||||||
|
"fail",
|
||||||
|
"ifError",
|
||||||
|
"match",
|
||||||
|
"notDeepEqual",
|
||||||
|
"notDeepStrictEqual",
|
||||||
|
"notEqual",
|
||||||
|
"notStrictEqual",
|
||||||
|
"partialDeepStrictEqual",
|
||||||
|
"rejects",
|
||||||
|
"strictEqual",
|
||||||
|
"throws",
|
||||||
|
];
|
||||||
|
|
||||||
|
/** `assert` object available via t.assert */
|
||||||
|
let assertObject = undefined;
|
||||||
|
function getAssertObject() {
|
||||||
|
if (assertObject === undefined) {
|
||||||
|
assertObject = { __proto__: null };
|
||||||
|
ArrayPrototypeForEach(methodsToCopy, (method) => {
|
||||||
|
assertObject[method] = assert[method];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return assertObject;
|
||||||
|
}
|
||||||
|
|
||||||
export function run() {
|
export function run() {
|
||||||
notImplemented("test.run");
|
notImplemented("test.run");
|
||||||
|
@ -22,6 +56,10 @@ class NodeTestContext {
|
||||||
this.#denoContext = t;
|
this.#denoContext = t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get assert() {
|
||||||
|
return getAssertObject();
|
||||||
|
}
|
||||||
|
|
||||||
get signal() {
|
get signal() {
|
||||||
notImplemented("test.TestContext.signal");
|
notImplemented("test.TestContext.signal");
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -130,6 +130,29 @@ suite("suite", () => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test("assertions available via text context", async (t) => {
|
||||||
|
assert.strictEqual(t.assert.deepEqual, assert.deepEqual);
|
||||||
|
assert.strictEqual(t.assert.deepStrictEqual, assert.deepStrictEqual);
|
||||||
|
assert.strictEqual(t.assert.doesNotMatch, assert.doesNotMatch);
|
||||||
|
assert.strictEqual(t.assert.doesNotReject, assert.doesNotReject);
|
||||||
|
assert.strictEqual(t.assert.doesNotThrow, assert.doesNotThrow);
|
||||||
|
assert.strictEqual(t.assert.equal, assert.equal);
|
||||||
|
assert.strictEqual(t.assert.fail, assert.fail);
|
||||||
|
assert.strictEqual(t.assert.ifError, assert.ifError);
|
||||||
|
assert.strictEqual(t.assert.match, assert.match);
|
||||||
|
assert.strictEqual(t.assert.notDeepEqual, assert.notDeepEqual);
|
||||||
|
assert.strictEqual(t.assert.notDeepStrictEqual, assert.notDeepStrictEqual);
|
||||||
|
assert.strictEqual(t.assert.notEqual, assert.notEqual);
|
||||||
|
assert.strictEqual(t.assert.notStrictEqual, assert.notStrictEqual);
|
||||||
|
assert.strictEqual(
|
||||||
|
t.assert.partialDeepStrictEqual,
|
||||||
|
assert.partialDeepStrictEqual,
|
||||||
|
);
|
||||||
|
assert.strictEqual(t.assert.rejects, assert.rejects);
|
||||||
|
assert.strictEqual(t.assert.strictEqual, assert.strictEqual);
|
||||||
|
assert.strictEqual(t.assert.throws, assert.throws);
|
||||||
|
});
|
||||||
|
|
||||||
test("unhandled rejection - passes but warns", () => {
|
test("unhandled rejection - passes but warns", () => {
|
||||||
Promise.reject(new Error("rejected from unhandled rejection fail"));
|
Promise.reject(new Error("rejected from unhandled rejection fail"));
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[WILDCARD]
|
[WILDCARD]
|
||||||
running 66 tests from ./test.js
|
running 67 tests from ./test.js
|
||||||
sync pass todo ...
|
sync pass todo ...
|
||||||
------- output -------
|
------- output -------
|
||||||
Warning: Not implemented: test.TestContext.todo
|
Warning: Not implemented: test.TestContext.todo
|
||||||
|
@ -92,6 +92,7 @@ suite ...
|
||||||
nested test 2 ... ok ([WILDLINE])
|
nested test 2 ... ok ([WILDLINE])
|
||||||
sub suite 2 ... FAILED (due to 1 failed step) ([WILDLINE])
|
sub suite 2 ... FAILED (due to 1 failed step) ([WILDLINE])
|
||||||
suite ... FAILED (due to 3 failed steps) ([WILDLINE])
|
suite ... FAILED (due to 3 failed steps) ([WILDLINE])
|
||||||
|
assertions available via text context ... ok ([WILDLINE])
|
||||||
unhandled rejection - passes but warns ...
|
unhandled rejection - passes but warns ...
|
||||||
Uncaught error from ./test.js FAILED
|
Uncaught error from ./test.js FAILED
|
||||||
unhandled rejection - passes but warns ... cancelled ([WILDCARD])
|
unhandled rejection - passes but warns ... cancelled ([WILDCARD])
|
||||||
|
@ -227,6 +228,6 @@ suite ... sub suite 1 ... nested test 2 => ./test.js:[WILDLINE]
|
||||||
suite ... sub suite 2 ... nested test 1 => ./test.js:[WILDLINE]
|
suite ... sub suite 2 ... nested test 1 => ./test.js:[WILDLINE]
|
||||||
./test.js (uncaught error)
|
./test.js (uncaught error)
|
||||||
|
|
||||||
FAILED | 11 passed (21 steps) | 52 failed (5 steps) | 4 ignored [WILDCARD]
|
FAILED | 12 passed (21 steps) | 52 failed (5 steps) | 4 ignored [WILDCARD]
|
||||||
|
|
||||||
error: Test failed
|
error: Test failed
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue