Skip to content

Commit 182b552

Browse files
Move keyed test to appropriate module
1 parent f170fae commit 182b552

2 files changed

Lines changed: 49 additions & 49 deletions

File tree

tests/test_directive_for.py

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -302,54 +302,6 @@ class App(cg.Component):
302302
assert items == state["items"], format_dict(container)
303303

304304

305-
def test_for_keyed(parse_source):
306-
App, _ = parse_source(
307-
"""
308-
<node
309-
v-for="i in items"
310-
:key="i['id']"
311-
:text="i['text']"
312-
/>
313-
314-
<script>
315-
import collagraph as cg
316-
317-
class App(cg.Component):
318-
pass
319-
</script>
320-
"""
321-
)
322-
323-
state = reactive(
324-
{
325-
"items": [
326-
{"id": 0, "text": "foo"},
327-
{"id": 1, "text": "bar"},
328-
]
329-
}
330-
)
331-
container = {"type": "root"}
332-
gui = Collagraph(
333-
renderer=DictRenderer(),
334-
event_loop_type=EventLoopType.SYNC,
335-
)
336-
gui.render(App, container, state)
337-
338-
assert len(container["children"]) == len(state["items"])
339-
for node, item in zip(container["children"], state["items"]):
340-
assert node["type"] == "node"
341-
assert node["attrs"]["key"] == item["id"]
342-
assert node["attrs"]["text"] == item["text"]
343-
344-
state["items"][1]["text"] = "baz"
345-
346-
assert len(container["children"]) == len(state["items"])
347-
for node, item in zip(container["children"], state["items"]):
348-
assert node["type"] == "node"
349-
assert node["attrs"]["key"] == item["id"]
350-
assert node["attrs"]["text"] == item["text"]
351-
352-
353305
def test_example(parse_source):
354306
App, _ = parse_source(
355307
"""

tests/test_directive_for_keyed.py

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from observ import reactive
88

99
from collagraph import Collagraph, EventLoopType
10-
from collagraph.renderers import Renderer
10+
from collagraph.renderers import DictRenderer, Renderer
1111

1212

1313
class CustomElement:
@@ -124,6 +124,54 @@ def reset_counters(self):
124124
self.operations = []
125125

126126

127+
def test_for_keyed(parse_source):
128+
App, _ = parse_source(
129+
"""
130+
<node
131+
v-for="i in items"
132+
:key="i['id']"
133+
:text="i['text']"
134+
/>
135+
136+
<script>
137+
import collagraph as cg
138+
139+
class App(cg.Component):
140+
pass
141+
</script>
142+
"""
143+
)
144+
145+
state = reactive(
146+
{
147+
"items": [
148+
{"id": 0, "text": "foo"},
149+
{"id": 1, "text": "bar"},
150+
]
151+
}
152+
)
153+
container = {"type": "root"}
154+
gui = Collagraph(
155+
renderer=DictRenderer(),
156+
event_loop_type=EventLoopType.SYNC,
157+
)
158+
gui.render(App, container, state)
159+
160+
assert len(container["children"]) == len(state["items"])
161+
for node, item in zip(container["children"], state["items"]):
162+
assert node["type"] == "node"
163+
assert node["attrs"]["key"] == item["id"]
164+
assert node["attrs"]["text"] == item["text"]
165+
166+
state["items"][1]["text"] = "baz"
167+
168+
assert len(container["children"]) == len(state["items"])
169+
for node, item in zip(container["children"], state["items"]):
170+
assert node["type"] == "node"
171+
assert node["attrs"]["key"] == item["id"]
172+
assert node["attrs"]["text"] == item["text"]
173+
174+
127175
def test_reconcile_by_key(parse_source):
128176
states = [
129177
(["a", "b", "c"], ["c", "a", "b"], "shift right"), # shift right

0 commit comments

Comments
 (0)