2467b7139b
* napi procedural macro for basic rust/JavaScript types * introduce the `compat-mode` for `napi` and `napi-derive` crates for backward compatible * remove #[inline] and let compiler to decide the inline behavior * cli now can produce the `.d.ts` file for native binding * many tests and example for the new procedural macro Co-authored-by: LongYinan <lynweklm@gmail.com>
25 lines
712 B
TypeScript
25 lines
712 B
TypeScript
import test from 'ava'
|
|
|
|
const bindings = require('../index.node')
|
|
|
|
test('should be able to spawn thread and return promise', async (t) => {
|
|
const result = await bindings.testSpawnThread(20)
|
|
t.is(result, 6765)
|
|
})
|
|
|
|
test('should be able to spawn thread with ref value', async (t) => {
|
|
const fixture = 'hello'
|
|
const result = await bindings.testSpawnThreadWithRef(Buffer.from(fixture))
|
|
t.is(result, fixture.length)
|
|
})
|
|
|
|
test('should be able to spawn with error', async (t) => {
|
|
const fixture = Array.from({ length: 10 }).fill('0').join('')
|
|
const err = new Error('Unreachable')
|
|
try {
|
|
await bindings.testSpawnThreadWithRef(Buffer.from(fixture))
|
|
throw err
|
|
} catch (e) {
|
|
t.not(e, err)
|
|
}
|
|
})
|