UNPKG

koffi

Version:

Fast and simple C FFI (foreign function interface) for Node.js

41 lines (32 loc) 1.22 kB
'use strict'; 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); }); }