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

Function testAccessor

test/objectwrap.js:17–98  ·  view source on GitHub ↗
(obj, clazz)

Source from the content-addressed store, hash-verified

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');
67
68 assert.throws(() => { clazz.prototype.testGetSet = 'instance getset'; }, /Invalid argument/);
69 assert.throws(() => { clazz.prototype.testGetSetT = 'instance getset'; }, /Invalid argument/);
70 }
71
72 // rw symbol
73 {
74 obj[clazz.kTestAccessorInternal] = 'instance internal getset';

Callers 1

testObjFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected