@@ -43,7 +43,7 @@ def test_render_variable_offense
43
43
ERB
44
44
45
45
assert_equal 2 , cop . offenses . count
46
- assert_equal "render must be used with a string literal or an instance of a Class " , cop . offenses [ 0 ] . message
46
+ assert_equal "render must be used with a literal template and use literals for locals keys " , cop . offenses [ 0 ] . message
47
47
end
48
48
49
49
def test_render_component_no_offense
@@ -94,7 +94,7 @@ def test_render_layout_variable_literal_no_offense
94
94
ERB
95
95
96
96
assert_equal 1 , cop . offenses . count
97
- assert_equal "render must be used with a string literal or an instance of a Class " , cop . offenses [ 0 ] . message
97
+ assert_equal "render must be used with a literal template and use literals for locals keys " , cop . offenses [ 0 ] . message
98
98
end
99
99
100
100
def test_render_inline_no_offense
@@ -112,4 +112,52 @@ def test_render_template_literal_no_offense
112
112
113
113
assert_equal 0 , cop . offenses . count
114
114
end
115
+
116
+ def test_render_literal_static_locals_no_offense
117
+ erb_investigate cop , <<-ERB , "app/views/products/index.html.erb"
118
+ <%= render "products/product" , product : product %>
119
+ ERB
120
+
121
+ assert_equal 0 , cop . offenses . count
122
+ end
123
+
124
+ def test_render_literal_dynamic_locals_offense
125
+ erb_investigate cop , <<-ERB , "app/views/products/index.html.erb"
126
+ <%= render "products/product" , locals %>
127
+ ERB
128
+
129
+ assert_equal 1 , cop . offenses . count
130
+ end
131
+
132
+ def test_render_literal_dynamic_local_key_offense
133
+ erb_investigate cop , <<-ERB , "app/views/products/index.html.erb"
134
+ <%= render "products/product" , { product_key => product } %>
135
+ ERB
136
+
137
+ assert_equal 1 , cop . offenses . count
138
+ end
139
+
140
+ def test_render_options_static_locals_no_offense
141
+ erb_investigate cop , <<-ERB , "app/views/products/index.html.erb"
142
+ <%= render partial : "products/product" , locals : { product : product } %>
143
+ ERB
144
+
145
+ assert_equal 0 , cop . offenses . count
146
+ end
147
+
148
+ def test_render_options_dynamic_locals_offense
149
+ erb_investigate cop , <<-ERB , "app/views/products/index.html.erb"
150
+ <%= render partial : "products/product" , locals : locals %>
151
+ ERB
152
+
153
+ assert_equal 1 , cop . offenses . count
154
+ end
155
+
156
+ def test_render_options_dynamic_local_key_offense
157
+ erb_investigate cop , <<-ERB , "app/views/products/index.html.erb"
158
+ <%= render partial : "products/product" , locals : { product_key => product } %>
159
+ ERB
160
+
161
+ assert_equal 1 , cop . offenses . count
162
+ end
115
163
end
0 commit comments