diff options
Diffstat (limited to 'test/addons-napi/test_object/test.js')
-rw-r--r-- | test/addons-napi/test_object/test.js | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/test/addons-napi/test_object/test.js b/test/addons-napi/test_object/test.js new file mode 100644 index 0000000000..d14a15421f --- /dev/null +++ b/test/addons-napi/test_object/test.js @@ -0,0 +1,65 @@ +'use strict'; +const common = require('../../common'); +const assert = require('assert'); + +// Testing api calls for objects +const test_object = require(`./build/${common.buildType}/test_object`); + + +const object = { + hello: 'world', + array: [ + 1, 94, 'str', 12.321, { test: 'obj in arr' } + ], + newObject: { + test: 'obj in obj' + } +}; + +assert.strictEqual(test_object.Get(object, 'hello'), 'world'); +assert.deepStrictEqual(test_object.Get(object, 'array'), + [ 1, 94, 'str', 12.321, { test: 'obj in arr' } ]); +assert.deepStrictEqual(test_object.Get(object, 'newObject'), + { test: 'obj in obj' }); + +assert(test_object.Has(object, 'hello')); +assert(test_object.Has(object, 'array')); +assert(test_object.Has(object, 'newObject')); + +const newObject = test_object.New(); +assert(test_object.Has(newObject, 'test_number')); +assert.strictEqual(newObject.test_number, 987654321); +assert.strictEqual(newObject.test_string, 'test string'); + +// test_object.Inflate increases all properties by 1 +const cube = { + x: 10, + y: 10, + z: 10 +}; + +assert.deepStrictEqual(test_object.Inflate(cube), {x: 11, y: 11, z: 11}); +assert.deepStrictEqual(test_object.Inflate(cube), {x: 12, y: 12, z: 12}); +assert.deepStrictEqual(test_object.Inflate(cube), {x: 13, y: 13, z: 13}); +cube.t = 13; +assert.deepStrictEqual(test_object.Inflate(cube), {x: 14, y: 14, z: 14, t: 14}); + +const sym1 = Symbol('1'); +const sym2 = Symbol('2'); +const sym3 = Symbol('3'); +const sym4 = Symbol('4'); +const object2 = { + [sym1]: '@@iterator', + [sym2]: sym3 +}; + +assert(test_object.Has(object2, sym1)); +assert(test_object.Has(object2, sym2)); +assert.strictEqual(test_object.Get(object2, sym1), '@@iterator'); +assert.strictEqual(test_object.Get(object2, sym2), sym3); +assert(test_object.Set(object2, 'string', 'value')); +assert(test_object.Set(object2, sym4, 123)); +assert(test_object.Has(object2, 'string')); +assert(test_object.Has(object2, sym4)); +assert.strictEqual(test_object.Get(object2, 'string'), 'value'); +assert.strictEqual(test_object.Get(object2, sym4), 123); |