Skip to content

Commit c6d180b

Browse files
author
Ruben Swieringa
committed
Inspect maps and numbers in unit-tests for usage in functions
1 parent 1198af3 commit c6d180b

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

test/functions_test.rb

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)