use wasm_bindgen_test::*;
use percy_dom::event::VirtualEvents;
use wasm_bindgen::JsCast;
use web_sys::*;
use percy_dom::prelude::*;
wasm_bindgen_test_configure!(run_in_browser);
#[wasm_bindgen_test]
fn set_input_elem_value_property() {
for (start, end) in vec![("BOTH EQUAL", "BOTH EQUAL"), ("NOT", "EQUAL")] {
let start_input = html! {<input value=start>};
let end_input = html! {<input value=end>};
let mut events = VirtualEvents::new();
let (input_node, enode) = start_input.create_dom_node(&mut events);
events.set_root(enode);
input_node
.clone()
.dyn_into::<HtmlInputElement>()
.unwrap()
.set_value("Should Be Replaced");
let patches = percy_dom::diff(&start_input, &end_input);
percy_dom::patch(input_node.clone(), &end_input, &mut events, &patches).unwrap();
assert_eq!(
input_node.dyn_into::<HtmlInputElement>().unwrap().value(),
end
);
}
}
#[wasm_bindgen_test]
fn set_textarea_elem_value_property() {
for (start, end) in vec![("BOTH EQUAL", "BOTH EQUAL"), ("NOT", "EQUAL")] {
let start_textarea = html! {<textarea value=start></textarea>};
let end_textarea = html! {<textarea value=end></textarea>};
let mut events = VirtualEvents::new();
let (textarea_node, enode) = start_textarea.create_dom_node(&mut events);
events.set_root(enode);
textarea_node
.clone()
.dyn_into::<HtmlTextAreaElement>()
.unwrap()
.set_value("Should Be Replaced");
let patches = percy_dom::diff(&start_textarea, &end_textarea);
percy_dom::patch(textarea_node.clone(), &end_textarea, &mut events, &patches).unwrap();
assert_eq!(
textarea_node
.dyn_into::<HtmlTextAreaElement>()
.unwrap()
.value(),
end
);
}
}