@@ -2,16 +2,7 @@ defmodule Ch.JSONTest do
2
2
use ExUnit.Case
3
3
4
4
setup do
5
- conn =
6
- start_supervised! (
7
- { Ch ,
8
- database: Ch.Test . database ( ) ,
9
- settings: [
10
- enable_json_type: 1 ,
11
- input_format_binary_read_json_as_string: 1 ,
12
- output_format_binary_write_json_as_string: 1
13
- ] }
14
- )
5
+ conn = start_supervised! ( { Ch , database: Ch.Test . database ( ) , settings: [ enable_json_type: 1 ] } )
15
6
16
7
on_exit ( fn ->
17
8
Ch.Test . sql_exec ( "DROP TABLE test" , [ ] , database: Ch.Test . database ( ) )
@@ -31,7 +22,14 @@ defmodule Ch.JSONTest do
31
22
('{"a" : {"b" : 43, "e" : 10}, "c" : [4, 5, 6]}')
32
23
""" )
33
24
34
- assert Ch . query! ( conn , "SELECT json FROM test" ) . rows == [
25
+ assert Ch . query! (
26
+ conn ,
27
+ "SELECT json FROM test" ,
28
+ _no_params = [ ] ,
29
+ settings: [
30
+ output_format_binary_write_json_as_string: 1
31
+ ]
32
+ ) . rows == [
35
33
[ % { "a" => % { "b" => "42" } , "c" => [ "1" , "2" , "3" ] } ] ,
36
34
[ % { "f" => "Hello, World!" } ] ,
37
35
[ % { "a" => % { "b" => "43" , "e" => "10" } , "c" => [ "4" , "5" , "6" ] } ]
@@ -48,17 +46,31 @@ defmodule Ch.JSONTest do
48
46
('{"a" : {"b" : 43, "e" : 10}, "c" : [4, 5, 6]}')
49
47
""" )
50
48
51
- assert Ch . query! ( conn , "SELECT json FROM test" ) . rows == [
49
+ assert Ch . query! (
50
+ conn ,
51
+ "SELECT json FROM test" ,
52
+ _no_params = [ ] ,
53
+ settings: [
54
+ output_format_binary_write_json_as_string: 1
55
+ ]
56
+ ) . rows == [
52
57
[ % { "a" => % { "b" => 42 } , "c" => [ "1" , "2" , "3" ] } ] ,
53
58
[ % { "a" => % { "b" => 0 } , "f" => "Hello, World!" } ] ,
54
59
[ % { "a" => % { "b" => 43 } , "c" => [ "4" , "5" , "6" ] } ]
55
60
]
56
61
end
57
62
58
63
test "Creating JSON using CAST from String" , % { conn: conn } do
59
- assert Ch . query! ( conn , """
60
- SELECT '{"a" : {"b" : 42},"c" : [1, 2, 3], "d" : "Hello, World!"}'::JSON AS json
61
- """ ) . rows == [
64
+ assert Ch . query! (
65
+ conn ,
66
+ """
67
+ SELECT '{"a" : {"b" : 42},"c" : [1, 2, 3], "d" : "Hello, World!"}'::JSON AS json
68
+ """ ,
69
+ _no_params = [ ] ,
70
+ settings: [
71
+ output_format_binary_write_json_as_string: 1
72
+ ]
73
+ ) . rows == [
62
74
[ % { "a" => % { "b" => "42" } , "c" => [ "1" , "2" , "3" ] , "d" => "Hello, World!" } ]
63
75
]
64
76
end
@@ -69,8 +81,11 @@ defmodule Ch.JSONTest do
69
81
"""
70
82
SELECT (tuple(42 AS b) AS a, [1, 2, 3] AS c, 'Hello, World!' AS d)::JSON AS json
71
83
""" ,
72
- [ ] ,
73
- settings: [ enable_named_columns_in_function_tuple: 1 ]
84
+ _no_params = [ ] ,
85
+ settings: [
86
+ enable_named_columns_in_function_tuple: 1 ,
87
+ output_format_binary_write_json_as_string: 1
88
+ ]
74
89
) . rows == [ [ % { "a" => % { "b" => "42" } , "c" => [ "1" , "2" , "3" ] , "d" => "Hello, World!" } ] ]
75
90
end
76
91
@@ -80,8 +95,12 @@ defmodule Ch.JSONTest do
80
95
"""
81
96
SELECT map('a', map('b', 42), 'c', [1,2,3], 'd', 'Hello, World!')::JSON AS json;
82
97
""" ,
83
- [ ] ,
84
- settings: [ enable_variant_type: 1 , use_variant_as_common_type: 1 ]
98
+ _no_params = [ ] ,
99
+ settings: [
100
+ enable_variant_type: 1 ,
101
+ use_variant_as_common_type: 1 ,
102
+ output_format_binary_write_json_as_string: 1
103
+ ]
85
104
) . rows == [ [ % { "a" => % { "b" => "42" } , "c" => [ "1" , "2" , "3" ] , "d" => "Hello, World!" } ] ]
86
105
end
87
106
@@ -96,7 +115,14 @@ defmodule Ch.JSONTest do
96
115
('{"a" : {"b" : 43, "e" : 10, "g" : 43.43}, "c" : [4, 5, 6]}')
97
116
""" )
98
117
99
- assert Ch . query! ( conn , "SELECT json FROM test" ) . rows == [
118
+ assert Ch . query! (
119
+ conn ,
120
+ "SELECT json FROM test" ,
121
+ _no_params = [ ] ,
122
+ settings: [
123
+ output_format_binary_write_json_as_string: 1
124
+ ]
125
+ ) . rows == [
100
126
[ % { "a" => % { "b" => 42 , "g" => 42.42 } , "c" => [ "1" , "2" , "3" ] , "d" => "2020-01-01" } ] ,
101
127
[ % { "a" => % { "b" => 0 } , "d" => "2020-01-02" , "f" => "Hello, World!" } ] ,
102
128
[ % { "a" => % { "b" => 43 , "g" => 43.43 } , "c" => [ "4" , "5" , "6" ] } ]
0 commit comments