@@ -74,7 +74,7 @@ def test_function_that_returns_a_number
7474
7575 def test_function_that_takes_a_number
7676 assert_sass <<-SCSS , <<-CSS
77- div { display: returns-arg (42.1px); }
77+ div { display: inspect-number (42.1px); }
7878 SCSS
7979 div { display: 42.1px; }
8080 CSS
@@ -144,7 +144,7 @@ def test_function_that_returns_a_sass_map
144144
145145 def test_function_that_takes_a_sass_map
146146 assert_sass <<-SCSS , <<-CSS
147- div { background-color: map-get( returns-arg (( dark : black, light: white )), dark ); }
147+ div { background-color: map-get( inspect-map (( color : black, number: 1.23px, string: "abc", map: ( x: 'y' ))), color ); }
148148 SCSS
149149 div { background-color: black; }
150150 CSS
@@ -199,8 +199,30 @@ def returns_a_number
199199 return Sass ::Script ::Value ::Number . new ( -312 , 'rem' )
200200 end
201201
202- def returns_arg ( arg )
203- return arg
202+ def inspect_number ( argument )
203+ raise StandardError . new "passed value is not a Sass::Script::Value::Number" unless argument . is_a? Sass ::Script ::Value ::Number
204+ return argument
205+ end
206+
207+ def inspect_map ( argument )
208+ argument . to_h . each_pair do |key , value |
209+ raise StandardError . new "key #{ key . inspect } is not a string" unless key . is_a? Sass ::Script ::Value ::String
210+
211+ valueClass = case key . value
212+ when 'string'
213+ Sass ::Script ::Value ::String
214+ when 'number'
215+ Sass ::Script ::Value ::Number
216+ when 'color'
217+ Sass ::Script ::Value ::Color
218+ when 'map'
219+ Sass ::Script ::Value ::Map
220+ end
221+
222+ raise StandardError . new "unknown key #{ key . inspect } " unless valueClass
223+ raise StandardError . new "value for #{ key . inspect } is not a #{ valueClass } " unless value . is_a? valueClass
224+ end
225+ return argument
204226 end
205227
206228 def returns_sass_value
0 commit comments