use sauron::*;
use test_fixtures::simple_program;
use wasm_bindgen_test::*;
mod test_fixtures;
wasm_bindgen_test_configure!(run_in_browser);
#[wasm_bindgen_test]
fn test_remove_nodes() {
console_log::init_with_level(log::Level::Trace).ok();
console_error_panic_hook::set_once();
let document = web_sys::window().unwrap().document().unwrap();
let old: Node<()> = main(
vec![class("test5")],
vec![ul(
vec![class("todo")],
vec![
li(vec![key(0)], vec![text("item0")]),
li(vec![key(1)], vec![text("item1")]),
li(vec![key(2)], vec![text("item2")]),
li(vec![key(3)], vec![text("item3")]),
],
)],
);
// we remove the key1
let update1: Node<()> = main(
vec![class("test5")],
vec![ul(
vec![class("todo")],
vec![
li(vec![key(1)], vec![text("item1")]),
li(vec![key(2)], vec![text("item2")]),
li(vec![key(3)], vec![text("item3")]),
],
)],
);
let patches = diff(&old, &update1);
log::debug!("patches: {:#?}", patches);
let mut old_html = String::new();
old.render(&mut old_html).expect("must render");
let mut simple_program = simple_program();
simple_program
.update_dom_with_vdom(old)
.expect("must update dom");
let container = document
.query_selector(".test5")
.expect("must not error")
.expect("must exist");
let expected = "";
assert_eq!(expected, container.outer_html());
simple_program
.update_dom_with_vdom(update1)
.expect("must not error");
let container = document
.query_selector(".test5")
.expect("must not error")
.expect("must exist");
let expected1 = "";
assert_eq!(expected1, container.outer_html());
}