napi-rs/examples/napi-compat-mode/__test__/global.spec.ts
forehalo 2467b7139b
Introduce #[napi] procedural macro to automation development boilerplate (#696)
* 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>
2021-09-23 01:29:09 +08:00

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)
})