v2 / vlib / x / json2 / tests / decode_any_alias_test.v
29 lines · 25 sloc · 693 bytes · 1c40b6fd4a0a9d04ebf516b3d3fb61819fc22461
Raw
1import x.json2 as json
2
3type Issue24127Any = json.Any
4type Issue24127Map = map[string]Issue24127Any
5
6const issue_24127_json_inputs = [
7 '{}',
8 '{"a":"b"}',
9 '{"a":1}',
10 '{"a":3.14}',
11 '{"a":{"b":"c"}}',
12 '{"a":true}',
13]
14
15fn test_decode_alias_of_any_sumtype() {
16 for input in issue_24127_json_inputs {
17 direct := json.decode[json.Any](input)!
18 aliased := json.decode[Issue24127Any](input)!
19 assert json.encode(direct) == json.encode(aliased)
20 }
21}
22
23fn test_decode_map_with_any_alias_value() {
24 for input in issue_24127_json_inputs {
25 direct := json.decode[map[string]json.Any](input)!
26 aliased := json.decode[Issue24127Map](input)!
27 assert json.encode(direct) == json.encode(aliased)
28 }
29}
30