diff options
Diffstat (limited to 'serde_v8/tests/de.rs')
-rw-r--r-- | serde_v8/tests/de.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/serde_v8/tests/de.rs b/serde_v8/tests/de.rs index 2b85d8839..1253ea92b 100644 --- a/serde_v8/tests/de.rs +++ b/serde_v8/tests/de.rs @@ -2,6 +2,7 @@ use serde::Deserialize; use serde_v8::utils::{js_exec, v8_do}; +use serde_v8::Buffer; use serde_v8::Error; #[derive(Debug, Deserialize, PartialEq)] @@ -192,6 +193,29 @@ fn de_string_or_buffer() { ); } +#[test] +fn de_buffers() { + // ArrayBufferView + dedo("new Uint8Array([97])", |scope, v| { + let buf: Buffer = serde_v8::from_v8(scope, v).unwrap(); + assert_eq!(&*buf, &[97]); + }); + + // ArrayBuffer + dedo("(new Uint8Array([97])).buffer", |scope, v| { + let buf: Buffer = serde_v8::from_v8(scope, v).unwrap(); + assert_eq!(&*buf, &[97]); + }); + + dedo( + "(Uint8Array.from([0x68, 0x65, 0x6C, 0x6C, 0x6F]))", + |scope, v| { + let buf: Buffer = serde_v8::from_v8(scope, v).unwrap(); + assert_eq!(&*buf, &[0x68, 0x65, 0x6C, 0x6C, 0x6F]); + }, + ); +} + //// // JSON tests: serde_json::Value compatibility //// |