@@ -43,7 +43,7 @@ def test_render_variable_offense
4343 ERB
4444
4545 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
4747 end
4848
4949 def test_render_component_no_offense
@@ -94,7 +94,7 @@ def test_render_layout_variable_literal_no_offense
9494 ERB
9595
9696 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
9898 end
9999
100100 def test_render_inline_no_offense
@@ -112,4 +112,52 @@ def test_render_template_literal_no_offense
112112
113113 assert_equal 0 , cop . offenses . count
114114 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
115163end
0 commit comments