MCPcopy Create free account
hub / github.com/nodejs/node-addon-api / test

Function test

test/objectwrap.js:9–309  ·  view source on GitHub ↗
(binding)

Source from the content-addressed store, hash-verified

7module.exports = require('./common').runTest(test);
8
9async function test (binding) {
10 const Test = binding.objectwrap.Test;
11
12 const testValue = (obj, clazz) => {
13 assert.strictEqual(obj.testValue, true);
14 assert.strictEqual(obj[clazz.kTestValueInternal], false);
15 };
16
17 const testAccessor = (obj, clazz) => {
18 // read-only, write-only
19 {
20 obj.testSetter = 'instance getter';
21 assert.strictEqual(obj.testGetter, 'instance getter');
22 assert.strictEqual(obj.testGetterT, 'instance getter');
23
24 obj.testSetter = 'instance getter 2';
25 assert.strictEqual(obj.testGetter, 'instance getter 2');
26 assert.strictEqual(obj.testGetterT, 'instance getter 2');
27
28 assert.throws(() => clazz.prototype.testGetter, /Invalid argument/);
29 assert.throws(() => clazz.prototype.testGetterT, /Invalid argument/);
30 }
31
32 // read write-only
33 {
34 let error;
35 // eslint-disable-next-line no-unused-vars
36 try { const read = obj.testSetter; } catch (e) { error = e; }
37 // no error
38 assert.strictEqual(error, undefined);
39
40 // read is undefined
41 assert.strictEqual(obj.testSetter, undefined);
42 }
43
44 // write read-only
45 {
46 let error;
47 try { obj.testGetter = 'write'; } catch (e) { error = e; }
48 assert.strictEqual(error.name, 'TypeError');
49
50 try { obj.testGetterT = 'write'; } catch (e) { error = e; }
51 assert.strictEqual(error.name, 'TypeError');
52 }
53
54 // rw
55 {
56 obj.testGetSet = 'instance getset';
57 assert.strictEqual(obj.testGetSet, 'instance getset');
58
59 obj.testGetSet = 'instance getset 2';
60 assert.strictEqual(obj.testGetSet, 'instance getset 2');
61
62 obj.testGetSetT = 'instance getset 3';
63 assert.strictEqual(obj.testGetSetT, 'instance getset 3');
64
65 obj.testGetSetT = 'instance getset 4';
66 assert.strictEqual(obj.testGetSetT, 'instance getset 4');

Callers

nothing calls this directly

Calls 2

testObjFunction · 0.85
testClassFunction · 0.85

Tested by

no test coverage detected