1
0
Fork 0
mirror of https://github.com/jashkenas/coffeescript.git synced 2022-11-09 12:23:24 -05:00
jashkenas--coffeescript/test/test_switch.coffee

86 lines
1.2 KiB
CoffeeScript
Raw Normal View History

num: 10
result: switch num
2009-12-28 23:08:02 -05:00
when 5 then false
when 'a'
true
true
false
when 10 then true
# Mid-switch comment with whitespace
# and multi line
2009-12-28 23:08:02 -05:00
when 11 then false
else false
ok result
2010-02-12 16:23:52 -05:00
func: (num) ->
switch num
when 2, 4, 6
true
when 1, 3, 5
false
else false
ok func(2)
ok func(6)
ok !func(3)
ok !func(8)
# Should cache the switch value, if anything fancier than a literal.
num: 5
result: switch num: + 5
when 5 then false
when 15 then false
when 10 then true
else false
ok result
# Ensure that trailing switch elses don't get rewritten.
result: false
switch "word"
when "one thing"
doSomething()
else
result: true unless false
ok result
result: false
switch "word"
when "one thing"
doSomething()
when "other thing"
doSomething()
else
result: true unless false
ok result
2010-05-10 22:57:51 -04:00
# Should be able to handle switches sans-condition.
result: switch
when null then 1
when 'truthful string' then 2
2010-05-10 22:57:51 -04:00
else 3
ok result is 2
# Should be able to use "@properties" within the switch clause.
obj: {
num: 101
func: ->
switch @num
when 101 then '101!'
else 'other'
}
ok obj.func() is '101!'