napi-rs/examples/napi/__tests__/error-msg.spec.ts
Caleb Everett 95dd6ef485
refactor(cli): refactor js-binding to support easier bundling. (#1957)
* Refactor js-binding to support bundling single-package artifacts

The existsSync check breaks the bundlers I've tested (esbuild, webpack,
ncc), so you cannot bundle napi-rs packages that have all binarys in a
single package.

I've tested this change with both single package and multi package
libraries.

* Update snapshots

* Update CI

* Fix electron test

---------

Co-authored-by: Caleb ツ Everett <calebev@amazon.com>
Co-authored-by: LongYinan <lynweklm@gmail.com>
2024-02-26 15:46:07 +08:00

59 lines
1.5 KiB
TypeScript

import test from 'ava'
import { receiveString } from '../index.cjs'
test('Function message', (t) => {
// @ts-expect-error
t.throws(() => receiveString(function a() {}), {
message:
'Failed to convert JavaScript value `function a(..) ` into rust type `String`',
})
// @ts-expect-error
t.throws(() => receiveString(() => {}), {
message:
'Failed to convert JavaScript value `function anonymous(..) ` into rust type `String`',
})
// @ts-expect-error
t.throws(() => receiveString(1), {
message:
'Failed to convert JavaScript value `Number 1 ` into rust type `String`',
})
t.throws(
() =>
// @ts-expect-error
receiveString({
a: 1,
b: {
foo: 'bar',
s: false,
},
}),
{
message:
'Failed to convert JavaScript value `Object {"a":1,"b":{"foo":"bar","s":false}}` into rust type `String`',
},
)
// @ts-expect-error
t.throws(() => receiveString(Symbol('1')), {
message:
'Failed to convert JavaScript value `Symbol` into rust type `String`',
})
// @ts-expect-error
t.throws(() => receiveString(), {
message:
'Failed to convert JavaScript value `Undefined` into rust type `String`',
})
// @ts-expect-error
t.throws(() => receiveString(null), {
message:
'Failed to convert JavaScript value `Null` into rust type `String`',
})
// @ts-expect-error
t.throws(() => receiveString(100n), {
message:
'Failed to convert JavaScript value `BigInt 100 ` into rust type `String`',
})
})