mirror of
https://github.com/denoland/deno.git
synced 2025-10-01 06:31:15 +00:00
fix(std/node): Stop callbacks being called twice when callback throws error (#8867)
This commit is contained in:
parent
f9949a3170
commit
06bd692e5c
46 changed files with 603 additions and 178 deletions
|
@ -1,4 +1,11 @@
|
|||
import { assert, assertEquals, assertThrows } from "../../testing/asserts.ts";
|
||||
import {
|
||||
assert,
|
||||
assertEquals,
|
||||
assertStringIncludes,
|
||||
assertThrows,
|
||||
assertThrowsAsync,
|
||||
} from "../../testing/asserts.ts";
|
||||
import { assertCallbackErrorUncaught } from "../_utils.ts";
|
||||
import randomBytes, { MAX_RANDOM_VALUES, MAX_SIZE } from "./randomBytes.ts";
|
||||
|
||||
Deno.test("randomBytes sync works correctly", function () {
|
||||
|
@ -59,10 +66,24 @@ Deno.test("randomBytes async works correctly", function () {
|
|||
assert(!err);
|
||||
})
|
||||
);
|
||||
assertThrows(() =>
|
||||
randomBytes(-1, function (err) {
|
||||
//Shouldn't throw async
|
||||
assert(!err);
|
||||
assertThrowsAsync(() =>
|
||||
new Promise((resolve, reject) => {
|
||||
randomBytes(-1, function (err, res) {
|
||||
//Shouldn't throw async
|
||||
if (err) {
|
||||
reject(err);
|
||||
} else {
|
||||
resolve(res);
|
||||
}
|
||||
});
|
||||
})
|
||||
);
|
||||
});
|
||||
|
||||
Deno.test("[std/node/crypto] randomBytes callback isn't called twice if error is thrown", async () => {
|
||||
const importUrl = new URL("./randomBytes.ts", import.meta.url);
|
||||
await assertCallbackErrorUncaught({
|
||||
prelude: `import randomBytes from ${JSON.stringify(importUrl)}`,
|
||||
invocation: "randomBytes(0, ",
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue