mirror of
https://github.com/nodejs/node.git
synced 2025-05-02 16:22:29 +00:00

Add test coverage for passing `NULL` to each parameter of `napi.*(propert|element)` and `napi_set_prototype`. In the case of `napi_define_properties` also test setting various initializer fields to `NULL`. PR-URL: https://github.com/nodejs/node/pull/31488 Reviewed-By: David Carlier <devnexen@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
53 lines
2.2 KiB
JavaScript
53 lines
2.2 KiB
JavaScript
'use strict';
|
|
const common = require('../../common');
|
|
const assert = require('assert');
|
|
|
|
// Test passing NULL to object-related N-APIs.
|
|
const { testNull } = require(`./build/${common.buildType}/test_object`);
|
|
|
|
const expectedForProperty = {
|
|
envIsNull: 'Invalid argument',
|
|
objectIsNull: 'Invalid argument',
|
|
keyIsNull: 'Invalid argument',
|
|
valueIsNull: 'Invalid argument'
|
|
};
|
|
assert.deepStrictEqual(testNull.setProperty(), expectedForProperty);
|
|
assert.deepStrictEqual(testNull.getProperty(), expectedForProperty);
|
|
assert.deepStrictEqual(testNull.hasProperty(), expectedForProperty);
|
|
assert.deepStrictEqual(testNull.hasOwnProperty(), expectedForProperty);
|
|
// It's OK not to want the result of a deletion.
|
|
assert.deepStrictEqual(testNull.deleteProperty(),
|
|
Object.assign({},
|
|
expectedForProperty,
|
|
{ valueIsNull: 'napi_ok' }));
|
|
assert.deepStrictEqual(testNull.setNamedProperty(), expectedForProperty);
|
|
assert.deepStrictEqual(testNull.getNamedProperty(), expectedForProperty);
|
|
assert.deepStrictEqual(testNull.hasNamedProperty(), expectedForProperty);
|
|
|
|
const expectedForElement = {
|
|
envIsNull: 'Invalid argument',
|
|
objectIsNull: 'Invalid argument',
|
|
valueIsNull: 'Invalid argument'
|
|
};
|
|
assert.deepStrictEqual(testNull.setElement(), expectedForElement);
|
|
assert.deepStrictEqual(testNull.getElement(), expectedForElement);
|
|
assert.deepStrictEqual(testNull.hasElement(), expectedForElement);
|
|
// It's OK not to want the result of a deletion.
|
|
assert.deepStrictEqual(testNull.deleteElement(),
|
|
Object.assign({},
|
|
expectedForElement,
|
|
{ valueIsNull: 'napi_ok' }));
|
|
|
|
assert.deepStrictEqual(testNull.defineProperties(), {
|
|
envIsNull: 'Invalid argument',
|
|
objectIsNull: 'Invalid argument',
|
|
descriptorListIsNull: 'Invalid argument',
|
|
utf8nameIsNull: 'Invalid argument',
|
|
methodIsNull: 'Invalid argument',
|
|
});
|
|
|
|
// `expectedForElement` also works for the APIs below.
|
|
assert.deepStrictEqual(testNull.getPropertyNames(), expectedForElement);
|
|
assert.deepStrictEqual(testNull.getAllPropertyNames(), expectedForElement);
|
|
assert.deepStrictEqual(testNull.getPrototype(), expectedForElement);
|