summaryrefslogtreecommitdiff
path: root/serde_v8/tests/de.rs
diff options
context:
space:
mode:
Diffstat (limited to 'serde_v8/tests/de.rs')
-rw-r--r--serde_v8/tests/de.rs24
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
////