@@ -73,6 +73,7 @@ def dispatch
73
73
it "should mark collector as non-retryable when visiting named function" do
74
74
function = Nodes ::NamedFunction . new ( "ABS" , [ @table ] )
75
75
collector = Collectors ::SQLString . new
76
+ collector . retryable = true
76
77
@visitor . accept ( function , collector )
77
78
78
79
assert_equal false , collector . retryable
@@ -81,22 +82,37 @@ def dispatch
81
82
it "should mark collector as non-retryable when visiting SQL literal" do
82
83
node = Nodes ::SqlLiteral . new ( "COUNT(*)" )
83
84
collector = Collectors ::SQLString . new
85
+ collector . retryable = true
84
86
@visitor . accept ( node , collector )
85
87
86
88
assert_equal false , collector . retryable
87
89
end
88
90
89
- it "should mark collector as retryable if SQL literal is marked as retryable" do
91
+ it "should not change retryable if SQL literal is marked as retryable" do
90
92
node = Nodes ::SqlLiteral . new ( "COUNT(*)" , retryable : true )
91
93
collector = Collectors ::SQLString . new
94
+ collector . retryable = true
92
95
@visitor . accept ( node , collector )
93
96
94
- assert collector . retryable
97
+ assert_predicate collector , :retryable
98
+ end
99
+
100
+ it "should mark collector as non-retryable if SQL literal is not retryable" do
101
+ node = Nodes ::As . new (
102
+ Nodes ::SqlLiteral . new ( "`product.id`" ) ,
103
+ Nodes ::SqlLiteral . new ( "`product.id`" , retryable : true )
104
+ )
105
+ collector = Collectors ::SQLString . new
106
+ collector . retryable = true
107
+ @visitor . accept ( node , collector )
108
+
109
+ assert_equal false , collector . retryable
95
110
end
96
111
97
112
it "should mark collector as non-retryable when visiting bound SQL literal" do
98
113
node = Nodes ::BoundSqlLiteral . new ( "id IN (?)" , [ [ 1 , 2 , 3 ] ] , { } )
99
114
collector = Collectors ::SQLString . new
115
+ collector . retryable = true
100
116
@visitor . accept ( node , collector )
101
117
102
118
assert_equal false , collector . retryable
@@ -105,6 +121,7 @@ def dispatch
105
121
it "should mark collector as non-retryable when visiting insert statement node" do
106
122
statement = Arel ::Nodes ::InsertStatement . new ( @table )
107
123
collector = Collectors ::SQLString . new
124
+ collector . retryable = true
108
125
@visitor . accept ( statement , collector )
109
126
110
127
assert_equal false , collector . retryable
@@ -113,6 +130,7 @@ def dispatch
113
130
it "should mark collector as non-retryable when visiting update statement node" do
114
131
statement = Arel ::Nodes ::UpdateStatement . new ( @table )
115
132
collector = Collectors ::SQLString . new
133
+ collector . retryable = true
116
134
@visitor . accept ( statement , collector )
117
135
118
136
assert_equal false , collector . retryable
@@ -121,6 +139,7 @@ def dispatch
121
139
it "should mark collector as non-retryable when visiting delete statement node" do
122
140
statement = Arel ::Nodes ::DeleteStatement . new ( @table )
123
141
collector = Collectors ::SQLString . new
142
+ collector . retryable = true
124
143
@visitor . accept ( statement , collector )
125
144
126
145
assert_equal false , collector . retryable
0 commit comments