Fix body to JsValue conversion (#1354)
				
					
				
			* fix body to JsValue conversion * add tests
This commit is contained in:
		| @@ -40,8 +40,7 @@ impl Body { | |||||||
|             Inner::Bytes(body_bytes) => { |             Inner::Bytes(body_bytes) => { | ||||||
|                 let body_bytes: &[u8] = body_bytes.as_ref(); |                 let body_bytes: &[u8] = body_bytes.as_ref(); | ||||||
|                 let body_uint8_array: Uint8Array = body_bytes.into(); |                 let body_uint8_array: Uint8Array = body_bytes.into(); | ||||||
|                 let body_array = Array::new(); |                 let body_array = Array::from(&body_uint8_array); | ||||||
|                 body_array.push(&body_uint8_array); |  | ||||||
|                 let js_value: &JsValue = body_array.as_ref(); |                 let js_value: &JsValue = body_array.as_ref(); | ||||||
|                 Ok(js_value.to_owned()) |                 Ok(js_value.to_owned()) | ||||||
|             } |             } | ||||||
| @@ -129,3 +128,49 @@ impl fmt::Debug for Body { | |||||||
|         f.debug_struct("Body").finish() |         f.debug_struct("Body").finish() | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | #[cfg(test)] | ||||||
|  | mod tests { | ||||||
|  |     use js_sys::{Array, Uint8Array}; | ||||||
|  |     use wasm_bindgen::{prelude::*, JsValue}; | ||||||
|  |     use wasm_bindgen_test::*; | ||||||
|  |  | ||||||
|  |     wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser); | ||||||
|  |  | ||||||
|  |     #[wasm_bindgen] | ||||||
|  |     extern "C" { | ||||||
|  |         // Use `js_namespace` here to bind `console.log(..)` instead of just | ||||||
|  |         // `log(..)` | ||||||
|  |         #[wasm_bindgen(js_namespace = console)] | ||||||
|  |         fn log(s: String); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     #[wasm_bindgen_test] | ||||||
|  |     async fn test_body() { | ||||||
|  |         use crate::Body; | ||||||
|  |  | ||||||
|  |         let body = Body::from("TEST"); | ||||||
|  |         assert_eq!([84, 69, 83, 84], body.as_bytes().unwrap()); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     #[wasm_bindgen_test] | ||||||
|  |     async fn test_body_js() { | ||||||
|  |         use crate::Body; | ||||||
|  |  | ||||||
|  |         let body = Body::from("TEST"); | ||||||
|  |  | ||||||
|  |         let arr = [84u8, 69, 83, 84]; | ||||||
|  |         let u8_arr: Uint8Array = arr.as_ref().into(); | ||||||
|  |         let expected = JsValue::from(Array::from(&u8_arr)); | ||||||
|  |  | ||||||
|  |         // ty JS -.- | ||||||
|  |         assert_eq!( | ||||||
|  |             format!("{:#?}", expected), | ||||||
|  |             format!( | ||||||
|  |                 "{:#?}", | ||||||
|  |                 body.to_js_value() | ||||||
|  |                     .expect("could not convert body to JsValue") | ||||||
|  |             ) | ||||||
|  |         ); | ||||||
|  |     } | ||||||
|  | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user