summaryrefslogtreecommitdiff
path: root/tests/napi/callback_test.js
diff options
context:
space:
mode:
Diffstat (limited to 'tests/napi/callback_test.js')
-rw-r--r--tests/napi/callback_test.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/napi/callback_test.js b/tests/napi/callback_test.js
new file mode 100644
index 000000000..98622d48d
--- /dev/null
+++ b/tests/napi/callback_test.js
@@ -0,0 +1,38 @@
+// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
+
+import { assertEquals, loadTestLibrary } from "./common.js";
+
+const callback = loadTestLibrary();
+
+Deno.test("napi callback run with args", function () {
+ const result = callback.test_callback_run((a, b) => a + b, [1, 2]);
+ assertEquals(result, 3);
+});
+
+Deno.test("napi callback run with args (no return)", function () {
+ const result = callback.test_callback_run(() => {}, []);
+ assertEquals(result, undefined);
+});
+
+Deno.test("napi callback run with args (extra arguments)", function () {
+ const result = callback.test_callback_run((a, b) => a + b, [
+ "Hello,",
+ " Deno!",
+ 1,
+ 2,
+ 3,
+ ]);
+ assertEquals(result, "Hello, Deno!");
+});
+
+Deno.test("napi callback run with args & recv", function () {
+ const result = callback.test_callback_run_with_recv(
+ function () {
+ assertEquals(this, 69);
+ return this;
+ },
+ [],
+ 69,
+ );
+ assertEquals(result, 69);
+});