diff options
Diffstat (limited to 'spec/inputs/test/class_expression_spec.yue')
| -rw-r--r-- | spec/inputs/test/class_expression_spec.yue | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/spec/inputs/test/class_expression_spec.yue b/spec/inputs/test/class_expression_spec.yue new file mode 100644 index 0000000..13c1d23 --- /dev/null +++ b/spec/inputs/test/class_expression_spec.yue | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | describe "class expression", -> | ||
| 2 | it "should support class expression assignment", -> | ||
| 3 | MyClass = class | ||
| 4 | value: 100 | ||
| 5 | |||
| 6 | assert.same MyClass.value, 100 | ||
| 7 | |||
| 8 | it "should support class expression in table", -> | ||
| 9 | classes = { | ||
| 10 | Alpha: class | ||
| 11 | new: => @value = 1 | ||
| 12 | Beta: class | ||
| 13 | new: => @value = 2 | ||
| 14 | } | ||
| 15 | |||
| 16 | a = classes.Alpha! | ||
| 17 | b = classes.Beta! | ||
| 18 | assert.same a.value, 1 | ||
| 19 | assert.same b.value, 2 | ||
| 20 | |||
| 21 | it "should work with return", -> | ||
| 22 | fn = -> | ||
| 23 | return class | ||
| 24 | value: 50 | ||
| 25 | |||
| 26 | Instance = fn! | ||
| 27 | assert.same Instance!.value, 50 | ||
