koffi
Version:
Fast and simple C FFI (foreign function interface) for Node.js
41 lines (32 loc) • 1.22 kB
JavaScript
const assert = require('assert');
module.exports = require('../common').runTest(test);
function test (binding) {
function testGetProperty (nativeGetProperty) {
const obj = { test: 1 };
assert.strictEqual(nativeGetProperty(obj, 'test'), 1);
}
function testShouldReturnUndefinedIfKeyIsNotPresent (nativeGetProperty) {
const obj = { };
assert.strictEqual(nativeGetProperty(obj, 'test'), undefined);
}
function testShouldThrowErrorIfKeyIsInvalid (nativeGetProperty) {
assert.throws(() => {
nativeGetProperty(undefined, 'test');
}, /Cannot convert undefined or null to object/);
}
const testObject = { 42: 100 };
const property = binding.object.getPropertyWithUint32(testObject, 42);
assert.strictEqual(property, 100);
const nativeFunctions = [
binding.object.getPropertyWithNapiValue,
binding.object.getPropertyWithNapiWrapperValue,
binding.object.getPropertyWithCStyleString,
binding.object.getPropertyWithCppStyleString
];
nativeFunctions.forEach((nativeFunction) => {
testGetProperty(nativeFunction);
testShouldReturnUndefinedIfKeyIsNotPresent(nativeFunction);
testShouldThrowErrorIfKeyIsInvalid(nativeFunction);
});
}
;