@@ -1,12 +1,12 @@
1use super::{assert_rendered, before_after, create_element, RenderFn};
1use super::{assert_rendered, before_after, create_element, RenderFn};
2−use dodrio::{Attribute, Node, Vdom};
2+use dodrio::{builder::*, Vdom};
3use futures::prelude::*;
3use futures::prelude::*;
4use std::rc::Rc;
4use std::rc::Rc;
5use wasm_bindgen_test::*;
5use wasm_bindgen_test::*;
7#[wasm_bindgen_test]
7#[wasm_bindgen_test]
8fn render_initial_text() {
8fn render_initial_text() {
9− let hello = Rc::new(RenderFn(|_bump| Node::text("hello")));
9+ let hello = Rc::new(RenderFn(|_bump| text("hello")));
11 let container = create_element("div");
11 let container = create_element("div");
12 let _vdom = Vdom::new(&container, hello.clone());
12 let _vdom = Vdom::new(&container, hello.clone());
@@ -16,19 +16,10 @@ fn render_initial_text() {
16#[wasm_bindgen_test]
16#[wasm_bindgen_test]
17fn render_initial_node() {
17fn render_initial_node() {
18 let hello = Rc::new(RenderFn(|bump| {
18 let hello = Rc::new(RenderFn(|bump| {
25− value: "hello-world",
20+ .attr("id", "hello-world")
26− }],
21+ .children([text("Hello "), span(bump).child(text("World!")).finish()])
28− Node::text("Hello "),
29− Node::element(bump, "span", [], [], [Node::text("World!")]),
34 let container = create_element("div");
25 let container = create_element("div");
@@ -39,7 +30,7 @@ fn render_initial_node() {
39#[wasm_bindgen_test]
30#[wasm_bindgen_test]
40fn container_is_emptied_upon_drop() {
31fn container_is_emptied_upon_drop() {
41 let container = create_element("div");
32 let container = create_element("div");
42− let vdom = Vdom::new(&container, RenderFn(|_bump| Node::text("blah")));
33+ let vdom = Vdom::new(&container, RenderFn(|_bump| text("blah")));
43 drop(vdom);
34 drop(vdom);
44 assert!(container.first_child().is_none());
35 assert!(container.first_child().is_none());
@@ -47,206 +38,206 @@ fn container_is_emptied_upon_drop() {
47before_after! {
38before_after! {
48 same_text {
39 same_text {
49 before(_bump) {
40 before(_bump) {
50− Node::text("hello")
41+ text("hello")
52 after(_bump) {
43 after(_bump) {
53− Node::text("hello")
44+ text("hello")
57 update_text {
48 update_text {
58 before(_bump) {
49 before(_bump) {
59− Node::text("before")
50+ text("before")
61 after(_bump) {
52 after(_bump) {
62− Node::text("after")
53+ text("after")
66 replace_text_with_elem {
57 replace_text_with_elem {
67 before(_bump) {
58 before(_bump) {
68− Node::text("before")
59+ text("before")
70 after(bump) {
61 after(bump) {
71− Node::element(bump, "div", [], [], [])
62+ div(bump).finish()
75 replace_elem_with_text {
66 replace_elem_with_text {
76 before(bump) {
67 before(bump) {
77− Node::element(bump, "div", [], [], [])
68+ div(bump).finish()
79 after(_bump) {
70 after(_bump) {
80− Node::text("before")
71+ text("before")
84 same_elem {
75 same_elem {
85 before(bump) {
76 before(bump) {
86− Node::element(bump, "div", [], [], [])
77+ div(bump).finish()
88 after(bump) {
79 after(bump) {
89− Node::element(bump, "div", [], [], [])
80+ div(bump).finish()
93 elems_with_different_tag_names {
84 elems_with_different_tag_names {
94 before(bump) {
85 before(bump) {
95− Node::element(bump, "span", [], [], [])
86+ span(bump).finish()
97 after(bump) {
88 after(bump) {
98− Node::element(bump, "div", [], [], [])
89+ div(bump).finish()
102 same_tag_name_update_attribute {
93 same_tag_name_update_attribute {
103 before(bump) {
94 before(bump) {
104− Node::element(bump, "div", [], [Attribute { name: "value", value: "1" }], [])
95+ div(bump).attr("value", "1").finish()
106 after(bump) {
97 after(bump) {
107− Node::element(bump, "div", [], [Attribute { name: "value", value: "2" }], [])
98+ div(bump).attr("value", "2").finish()
111 same_tag_name_remove_attribute {
102 same_tag_name_remove_attribute {
112 before(bump) {
103 before(bump) {
113− Node::element(bump, "div", [], [Attribute { name: "value", value: "1" }], [])
104+ div(bump).attr("value", "1").finish()
115 after(bump) {
106 after(bump) {
116− Node::element(bump, "div", [], [], [])
107+ div(bump).finish()
120 same_tag_name_add_attribute {
111 same_tag_name_add_attribute {
121 before(bump) {
112 before(bump) {
122− Node::element(bump, "div", [], [], [])
113+ div(bump).finish()
124 after(bump) {
115 after(bump) {
125− Node::element(bump, "div", [], [Attribute { name: "value", value: "2" }], [])
116+ div(bump).attr("value", "2").finish()
129 same_tag_name_many_attributes {
120 same_tag_name_many_attributes {
130 before(bump) {
121 before(bump) {
131− Node::element(bump, "div", [], [
122+ div(bump)
132− Attribute { name: "before-1", value: "1" },
123+ .attr("before-1", "1")
133− Attribute { name: "shared-1", value: "1" },
124+ .attr("shared-1", "1")
134− Attribute { name: "modified-1", value: "1" },
125+ .attr("modified-1", "1")
135− Attribute { name: "before-2", value: "2" },
126+ .attr("before-2", "2")
136− Attribute { name: "shared-2", value: "2" },
127+ .attr("shared-2", "2")
137− Attribute { name: "modified-2", value: "2" },
128+ .attr("modified-2", "2")
138− Attribute { name: "before-3", value: "3" },
129+ .attr("before-3", "3")
139− Attribute { name: "shared-3", value: "3" },
130+ .attr("shared-3", "3")
140− Attribute { name: "modified-3", value: "3" },
131+ .attr("modified-3", "3")
141− ], [])
132+ .finish()
143 after(bump) {
134 after(bump) {
144− Node::element(bump, "div", [], [
135+ div(bump)
145− Attribute { name: "after-1", value: "1" },
136+ .attr("after-1", "1")
146− Attribute { name: "shared-1", value: "1" },
137+ .attr("shared-1", "1")
147− Attribute { name: "modified-1", value: "100" },
138+ .attr("modified-1", "100")
148− Attribute { name: "after-2", value: "2" },
139+ .attr("after-2", "2")
149− Attribute { name: "shared-2", value: "2" },
140+ .attr("shared-2", "2")
150− Attribute { name: "modified-2", value: "200" },
141+ .attr("modified-2", "200")
151− Attribute { name: "after-3", value: "3" },
142+ .attr("after-3", "3")
152− Attribute { name: "shared-3", value: "3" },
143+ .attr("shared-3", "3")
153− Attribute { name: "modified-3", value: "300" },
144+ .attr("modified-3", "300")
154− ], [])
145+ .finish()
158 same_tag_same_children {
149 same_tag_same_children {
159 before(bump) {
150 before(bump) {
160− Node::element(bump, "div", [], [], [
161− Node::text("child")
151+ div(bump).child(text("child")).finish()
164 after(bump) {
153 after(bump) {
165− Node::element(bump, "div", [], [], [
166− Node::text("child")
154+ div(bump).child(text("child")).finish()
171 same_tag_update_child {
158 same_tag_update_child {
172 before(bump) {
159 before(bump) {
173− Node::element(bump, "div", [], [], [
174− Node::text("before")
160+ div(bump).child(text("before")).finish()
177 after(bump) {
162 after(bump) {
178− Node::element(bump, "div", [], [], [
179− Node::text("after")
163+ div(bump).child(text("after")).finish()
184 same_tag_add_child {
167 same_tag_add_child {
185 before(bump) {
168 before(bump) {
186− Node::element(bump, "div", [], [], [])
169+ div(bump).finish()
188 after(bump) {
171 after(bump) {
189− Node::element(bump, "div", [], [], [
190− Node::text("child")
172+ div(bump).child(text("child")).finish()
195 same_tag_remove_child {
176 same_tag_remove_child {
196 before(bump) {
177 before(bump) {
197− Node::element(bump, "div", [], [], [
198− Node::text("child")
178+ div(bump).child(text("child")).finish()
201 after(bump) {
180 after(bump) {
202− Node::element(bump, "div", [], [], [])
181+ div(bump).finish()
206 same_tag_update_many_children {
185 same_tag_update_many_children {
207 before(bump) {
186 before(bump) {
208− Node::element(bump, "div", [], [], [
187+ div(bump)
209− Node::element(bump, "div", [], [], []),
188+ .children([
210− Node::element(bump, "span", [], [], []),
189+ div(bump).finish(),
211− Node::element(bump, "p", [], [], []),
190+ span(bump).finish(),
214 after(bump) {
195 after(bump) {
215− Node::element(bump, "div", [], [], [
196+ div(bump)
216− Node::element(bump, "span", [], [], []),
197+ .children([
217− Node::element(bump, "p", [], [], []),
198+ span(bump).finish(),
218− Node::element(bump, "div", [], [], []),
199+ p(bump).finish(),
223 same_tag_remove_many_children {
206 same_tag_remove_many_children {
224 before(bump) {
207 before(bump) {
225− Node::element(bump, "div", [], [], [
208+ div(bump)
226− Node::element(bump, "div", [], [], []),
209+ .children([
227− Node::element(bump, "span", [], [], []),
210+ div(bump).finish(),
228− Node::element(bump, "p", [], [], []),
211+ span(bump).finish(),
231 after(bump) {
216 after(bump) {
232− Node::element(bump, "div", [], [], [
217+ div(bump)
233− Node::element(bump, "div", [], [], []),
218+ .children([
234− ])
219+ div(bump).finish(),
238 same_tag_add_many_children {
225 same_tag_add_many_children {
239 before(bump) {
226 before(bump) {
240− Node::element(bump, "div", [], [], [
227+ div(bump)
241− Node::element(bump, "div", [], [], []),
228+ .children([
242− ])
229+ div(bump).finish(),
244 after(bump) {
233 after(bump) {
245− Node::element(bump, "div", [], [], [
234+ div(bump)
246− Node::element(bump, "div", [], [], []),
235+ .children([
247− Node::element(bump, "span", [], [], []),
236+ div(bump).finish(),
248− Node::element(bump, "p", [], [], []),
237+ span(bump).finish(),