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>
27 lines
645 B
TypeScript
27 lines
645 B
TypeScript
import test from 'ava'
|
|
import Sinon from 'sinon'
|
|
|
|
const bindings = require('../index.node')
|
|
|
|
function wait(delay: number) {
|
|
return new Promise((resolve) => setTimeout(resolve, delay))
|
|
}
|
|
|
|
const delay = 100
|
|
|
|
test('should setTimeout', async (t) => {
|
|
const handler = Sinon.spy()
|
|
bindings.setTimeout(handler, delay)
|
|
t.is(handler.callCount, 0)
|
|
await wait(delay + 10)
|
|
t.is(handler.callCount, 1)
|
|
})
|
|
|
|
test('should clearTimeout', async (t) => {
|
|
const handler = Sinon.spy()
|
|
const timer = setTimeout(() => handler(), delay)
|
|
t.is(handler.callCount, 0)
|
|
bindings.clearTimeout(timer)
|
|
await wait(delay + 10)
|
|
t.is(handler.callCount, 0)
|
|
})
|