Skip to content

Commit 2326628

Browse files
feat(tests): add test case for root-level, mixed-format arrays
toon-format/toon#202
1 parent 07a1f6c commit 2326628

File tree

3 files changed

+28
-16
lines changed

3 files changed

+28
-16
lines changed

tests/fixtures/decode/arrays-nested.json

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@
6969
},
7070
{
7171
"name": "parses objects containing arrays (including empty arrays) in list format",
72-
"input": "items[1]:\n - name: test\n data[0]:",
72+
"input": "items[1]:\n - name: Ada\n data[0]:",
7373
"expected": {
7474
"items": [
75-
{ "name": "test", "data": [] }
75+
{ "name": "Ada", "data": [] }
7676
]
7777
},
7878
"specSection": "9.4"
@@ -138,17 +138,23 @@
138138
"specSection": "9.4"
139139
},
140140
{
141-
"name": "parses empty root arrays",
142-
"input": "[0]:",
143-
"expected": [],
144-
"specSection": "9.1"
141+
"name": "parses root arrays mixing primitive, object, and array of objects in list format",
142+
"input": "[3]:\n - summary\n - id: 1\n name: Ada\n - [2]:\n - id: 2\n - status: draft",
143+
"expected": ["summary", { "id": 1, "name": "Ada" }, [{ "id": 2 }, { "status": "draft" }]],
144+
"specSection": "9.4"
145145
},
146146
{
147147
"name": "parses root arrays of arrays",
148148
"input": "[2]:\n - [2]: 1,2\n - [0]:",
149149
"expected": [[1, 2], []],
150150
"specSection": "9.2"
151151
},
152+
{
153+
"name": "parses empty root arrays",
154+
"input": "[0]:",
155+
"expected": [],
156+
"specSection": "9.1"
157+
},
152158
{
153159
"name": "parses complex mixed object with arrays and nested objects",
154160
"input": "user:\n id: 123\n name: Ada\n tags[2]: reading,gaming\n active: true\n prefs[0]:",

tests/fixtures/encode/arrays-nested.json

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,17 +54,23 @@
5454
"specSection": "9.4"
5555
},
5656
{
57-
"name": "encodes empty root-level array",
58-
"input": [],
59-
"expected": "[0]:",
60-
"specSection": "9.1"
57+
"name": "encodes root-level array mixing primitive, object, and array of objects in list format",
58+
"input": ["summary", { "id": 1, "name": "Ada" }, [{ "id": 2 }, { "status": "draft" }]],
59+
"expected": "[3]:\n - summary\n - id: 1\n name: Ada\n - [2]:\n - id: 2\n - status: draft",
60+
"specSection": "9.4"
6161
},
6262
{
6363
"name": "encodes root-level arrays of arrays",
6464
"input": [[1, 2], []],
6565
"expected": "[2]:\n - [2]: 1,2\n - [0]:",
6666
"specSection": "9.2"
6767
},
68+
{
69+
"name": "encodes empty root-level array",
70+
"input": [],
71+
"expected": "[0]:",
72+
"specSection": "9.1"
73+
},
6874
{
6975
"name": "encodes complex nested structure",
7076
"input": {

tests/fixtures/encode/arrays-objects.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,17 @@
2727
{
2828
"name": "preserves field order in list items - array first",
2929
"input": {
30-
"items": [{ "nums": [1, 2, 3], "name": "test" }]
30+
"items": [{ "nums": [1, 2, 3], "name": "Ada" }]
3131
},
32-
"expected": "items[1]:\n - nums[3]: 1,2,3\n name: test",
32+
"expected": "items[1]:\n - nums[3]: 1,2,3\n name: Ada",
3333
"specSection": "10"
3434
},
3535
{
3636
"name": "preserves field order in list items - primitive first",
3737
"input": {
38-
"items": [{ "name": "test", "nums": [1, 2, 3] }]
38+
"items": [{ "name": "Ada", "nums": [1, 2, 3] }]
3939
},
40-
"expected": "items[1]:\n - name: test\n nums[3]: 1,2,3",
40+
"expected": "items[1]:\n - name: Ada\n nums[3]: 1,2,3",
4141
"specSection": "10"
4242
},
4343
{
@@ -90,10 +90,10 @@
9090
"name": "encodes objects with empty arrays in list format",
9191
"input": {
9292
"items": [
93-
{ "name": "test", "data": [] }
93+
{ "name": "Ada", "data": [] }
9494
]
9595
},
96-
"expected": "items[1]:\n - name: test\n data[0]:",
96+
"expected": "items[1]:\n - name: Ada\n data[0]:",
9797
"specSection": "10"
9898
},
9999
{

0 commit comments

Comments
 (0)