deno/tests/napi/object_test.js
LongYinan 5689585888
fix(cli): set napi object property properly (#26344)
<!--
Before submitting a PR, please read
https://docs.deno.com/runtime/manual/references/contributing

1. Give the PR a descriptive title.

  Examples of good title:
    - fix(std/http): Fix race condition in server
    - docs(console): Update docstrings
    - feat(doc): Handle nested reexports

  Examples of bad title:
    - fix #7123
    - update docs
    - fix bugs

2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't
run
   all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench'
label.
-->
2024-10-17 12:44:51 +02:00

39 lines
817 B
JavaScript

// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
import {
assert,
assertEquals,
assertThrows,
loadTestLibrary,
} from "./common.js";
const object = loadTestLibrary();
Deno.test("napi object", function () {
const r = object.test_object_new(1, "hello");
assertEquals(typeof r, "object");
assertEquals(r[0], 1);
assertEquals(r[1], "hello");
const r1 = object.test_object_get(r);
assert(r === r1);
const r2 = object.test_object_attr_property(r);
assert(r === r2);
assertThrows(
() => {
r2.self = "2";
},
Error,
"Cannot assign to read only property 'self' of object '#<Object>'",
);
assertThrows(
() => {
r2.method = () => {};
},
Error,
"Cannot assign to read only property 'method' of object '#<Object>'",
);
});