@@ -1,12 +1,12 @@
11use super::{assert_rendered, before_after, create_element, RenderFn};
2−use dodrio::{Attribute, Node, Vdom};
2+use dodrio::{builder::*, Vdom};
33use futures::prelude::*;
44use std::rc::Rc;
55use wasm_bindgen_test::*;
66
77#[wasm_bindgen_test]
88fn render_initial_text() {
9− let hello = Rc::new(RenderFn(|_bump| Node::text("hello")));
9+ let hello = Rc::new(RenderFn(|_bump| text("hello")));
1010
1111 let container = create_element("div");
1212 let _vdom = Vdom::new(&container, hello.clone());
@@ -16,19 +16,10 @@ fn render_initial_text() {
1616#[wasm_bindgen_test]
1717fn render_initial_node() {
1818 let hello = Rc::new(RenderFn(|bump| {
19− Node::element(
20− bump,
21− "div",
22− [],
23− [Attribute {
24− name: "id",
25− value: "hello-world",
26− }],
27− [
28− Node::text("Hello "),
29− Node::element(bump, "span", [], [], [Node::text("World!")]),
30− ],
31− )
19+ div(bump)
20+ .attr("id", "hello-world")
21+ .children([text("Hello "), span(bump).child(text("World!")).finish()])
22+ .finish()
3223 }));
3324
3425 let container = create_element("div");
@@ -39,7 +30,7 @@ fn render_initial_node() {
3930#[wasm_bindgen_test]
4031fn container_is_emptied_upon_drop() {
4132 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")));
4334 drop(vdom);
4435 assert!(container.first_child().is_none());
4536}
@@ -47,206 +38,206 @@ fn container_is_emptied_upon_drop() {
4738before_after! {
4839 same_text {
4940 before(_bump) {
50− Node::text("hello")
41+ text("hello")
5142 }
5243 after(_bump) {
53− Node::text("hello")
44+ text("hello")
5445 }
5546 }
5647
5748 update_text {
5849 before(_bump) {
59− Node::text("before")
50+ text("before")
6051 }
6152 after(_bump) {
62− Node::text("after")
53+ text("after")
6354 }
6455 }
6556
6657 replace_text_with_elem {
6758 before(_bump) {
68− Node::text("before")
59+ text("before")
6960 }
7061 after(bump) {
71− Node::element(bump, "div", [], [], [])
62+ div(bump).finish()
7263 }
7364 }
7465
7566 replace_elem_with_text {
7667 before(bump) {
77− Node::element(bump, "div", [], [], [])
68+ div(bump).finish()
7869 }
7970 after(_bump) {
80− Node::text("before")
71+ text("before")
8172 }
8273 }
8374
8475 same_elem {
8576 before(bump) {
86− Node::element(bump, "div", [], [], [])
77+ div(bump).finish()
8778 }
8879 after(bump) {
89− Node::element(bump, "div", [], [], [])
80+ div(bump).finish()
9081 }
9182 }
9283
9384 elems_with_different_tag_names {
9485 before(bump) {
95− Node::element(bump, "span", [], [], [])
86+ span(bump).finish()
9687 }
9788 after(bump) {
98− Node::element(bump, "div", [], [], [])
89+ div(bump).finish()
9990 }
10091 }
10192
10293 same_tag_name_update_attribute {
10394 before(bump) {
104− Node::element(bump, "div", [], [Attribute { name: "value", value: "1" }], [])
95+ div(bump).attr("value", "1").finish()
10596 }
10697 after(bump) {
107− Node::element(bump, "div", [], [Attribute { name: "value", value: "2" }], [])
98+ div(bump).attr("value", "2").finish()
10899 }
109100 }
110101
111102 same_tag_name_remove_attribute {
112103 before(bump) {
113− Node::element(bump, "div", [], [Attribute { name: "value", value: "1" }], [])
104+ div(bump).attr("value", "1").finish()
114105 }
115106 after(bump) {
116− Node::element(bump, "div", [], [], [])
107+ div(bump).finish()
117108 }
118109 }
119110
120111 same_tag_name_add_attribute {
121112 before(bump) {
122− Node::element(bump, "div", [], [], [])
113+ div(bump).finish()
123114 }
124115 after(bump) {
125− Node::element(bump, "div", [], [Attribute { name: "value", value: "2" }], [])
116+ div(bump).attr("value", "2").finish()
126117 }
127118 }
128119
129120 same_tag_name_many_attributes {
130121 before(bump) {
131− Node::element(bump, "div", [], [
132− Attribute { name: "before-1", value: "1" },
133− Attribute { name: "shared-1", value: "1" },
134− Attribute { name: "modified-1", value: "1" },
135− Attribute { name: "before-2", value: "2" },
136− Attribute { name: "shared-2", value: "2" },
137− Attribute { name: "modified-2", value: "2" },
138− Attribute { name: "before-3", value: "3" },
139− Attribute { name: "shared-3", value: "3" },
140− Attribute { name: "modified-3", value: "3" },
141− ], [])
122+ div(bump)
123+ .attr("before-1", "1")
124+ .attr("shared-1", "1")
125+ .attr("modified-1", "1")
126+ .attr("before-2", "2")
127+ .attr("shared-2", "2")
128+ .attr("modified-2", "2")
129+ .attr("before-3", "3")
130+ .attr("shared-3", "3")
131+ .attr("modified-3", "3")
132+ .finish()
142133 }
143134 after(bump) {
144− Node::element(bump, "div", [], [
145− Attribute { name: "after-1", value: "1" },
146− Attribute { name: "shared-1", value: "1" },
147− Attribute { name: "modified-1", value: "100" },
148− Attribute { name: "after-2", value: "2" },
149− Attribute { name: "shared-2", value: "2" },
150− Attribute { name: "modified-2", value: "200" },
151− Attribute { name: "after-3", value: "3" },
152− Attribute { name: "shared-3", value: "3" },
153− Attribute { name: "modified-3", value: "300" },
154− ], [])
135+ div(bump)
136+ .attr("after-1", "1")
137+ .attr("shared-1", "1")
138+ .attr("modified-1", "100")
139+ .attr("after-2", "2")
140+ .attr("shared-2", "2")
141+ .attr("modified-2", "200")
142+ .attr("after-3", "3")
143+ .attr("shared-3", "3")
144+ .attr("modified-3", "300")
145+ .finish()
155146 }
156147 }
157148
158149 same_tag_same_children {
159150 before(bump) {
160− Node::element(bump, "div", [], [], [
161− Node::text("child")
162− ])
151+ div(bump).child(text("child")).finish()
163152 }
164153 after(bump) {
165− Node::element(bump, "div", [], [], [
166− Node::text("child")
167− ])
154+ div(bump).child(text("child")).finish()
168155 }
169156 }
170157
171158 same_tag_update_child {
172159 before(bump) {
173− Node::element(bump, "div", [], [], [
174− Node::text("before")
175− ])
160+ div(bump).child(text("before")).finish()
176161 }
177162 after(bump) {
178− Node::element(bump, "div", [], [], [
179− Node::text("after")
180− ])
163+ div(bump).child(text("after")).finish()
181164 }
182165 }
183166
184167 same_tag_add_child {
185168 before(bump) {
186− Node::element(bump, "div", [], [], [])
169+ div(bump).finish()
187170 }
188171 after(bump) {
189− Node::element(bump, "div", [], [], [
190− Node::text("child")
191− ])
172+ div(bump).child(text("child")).finish()
192173 }
193174 }
194175
195176 same_tag_remove_child {
196177 before(bump) {
197− Node::element(bump, "div", [], [], [
198− Node::text("child")
199− ])
178+ div(bump).child(text("child")).finish()
200179 }
201180 after(bump) {
202− Node::element(bump, "div", [], [], [])
181+ div(bump).finish()
203182 }
204183 }
205184
206185 same_tag_update_many_children {
207186 before(bump) {
208− Node::element(bump, "div", [], [], [
209− Node::element(bump, "div", [], [], []),
210− Node::element(bump, "span", [], [], []),
211− Node::element(bump, "p", [], [], []),
212− ])
187+ div(bump)
188+ .children([
189+ div(bump).finish(),
190+ span(bump).finish(),
191+ p(bump).finish(),
192+ ])
193+ .finish()
213194 }
214195 after(bump) {
215− Node::element(bump, "div", [], [], [
216− Node::element(bump, "span", [], [], []),
217− Node::element(bump, "p", [], [], []),
218− Node::element(bump, "div", [], [], []),
219− ])
196+ div(bump)
197+ .children([
198+ span(bump).finish(),
199+ p(bump).finish(),
200+ div(bump).finish(),
201+ ])
202+ .finish()
220203 }
221204 }
222205
223206 same_tag_remove_many_children {
224207 before(bump) {
225− Node::element(bump, "div", [], [], [
226− Node::element(bump, "div", [], [], []),
227− Node::element(bump, "span", [], [], []),
228− Node::element(bump, "p", [], [], []),
229− ])
208+ div(bump)
209+ .children([
210+ div(bump).finish(),
211+ span(bump).finish(),
212+ p(bump).finish(),
213+ ])
214+ .finish()
230215 }
231216 after(bump) {
232− Node::element(bump, "div", [], [], [
233− Node::element(bump, "div", [], [], []),
234− ])
217+ div(bump)
218+ .children([
219+ div(bump).finish(),
220+ ])
221+ .finish()
235222 }
236223 }
237224
238225 same_tag_add_many_children {
239226 before(bump) {
240− Node::element(bump, "div", [], [], [
241− Node::element(bump, "div", [], [], []),
242− ])
227+ div(bump)
228+ .children([
229+ div(bump).finish(),
230+ ])
231+ .finish()
243232 }
244233 after(bump) {
245− Node::element(bump, "div", [], [], [
246− Node::element(bump, "div", [], [], []),
247− Node::element(bump, "span", [], [], []),
248− Node::element(bump, "p", [], [], []),
249− ])
234+ div(bump)
235+ .children([
236+ div(bump).finish(),
237+ span(bump).finish(),
238+ p(bump).finish(),
239+ ])
240+ .finish()
250241 }
251242 }
252243}