ffi-napi
Version:
A foreign function interface (FFI) for Node.js, N-API style
44 lines (36 loc) • 1.47 kB
JavaScript
;
const assert = require('assert')
const ref = require('ref-napi')
const ffi = require('../')
describe('types', function () {
describe('`ffi_type` to ref type matchups', function () {
Object.keys(ref.types).forEach(name => {
it('should match a valid `ffi_type` for "' + name + '"', () =>{
const type = ref.types[name];
const ffi_type = ffi.ffiType(type);
assert(Buffer.isBuffer(ffi_type));
});
});
it('should match a valid `ffi_type` for "ref" type without a cached value', function () {
// simulate a ref type without a "ffi_type" property set
const type = Object.create(ref.types.void);
type.ffi_type = undefined;
const ffi_type = ffi.ffiType(type);
assert(Buffer.isBuffer(ffi_type));
});
it('should match a valid `ffi_type` for `CString` without a cached value', function () {
// simulate a ref type without a "ffi_type" property set
const type = Object.create(ref.types.CString);
type.ffi_type = undefined;
const ffi_type = ffi.ffiType(type);
assert(Buffer.isBuffer(ffi_type));
});
it('should match a valid `ffi_type` for `ulong` without a cached value', function () {
// simulate a ref type without a "ffi_type" property set
const type = Object.create(ref.types.ulong);
type.ffi_type = undefined;
const ffi_type = ffi.ffiType(type);
assert(Buffer.isBuffer(ffi_type));
});
});
});