tests/assignment.fy in fancy-0.4.0 vs tests/assignment.fy in fancy-0.5.0
- old
+ new
@@ -48,6 +48,61 @@
e is: 5
_,_,*z = "hello, world!" # ignore first 2 characters
z is: "llo, world!"
}
+
+ it: "sets dynamic vars accordingly" when: {
+ let: '*foo* be: 10 in: {
+ *foo* is: 10
+ }
+ }
+
+ it: "sets a dynamic var with proper nesting" when: {
+ def use_foo: expected {
+ *foo* is: expected
+ }
+
+ def use_nested_foo: expected {
+ use_foo: expected
+ let: '*foo* be: -10 in: {
+ use_foo: -10
+ }
+ }
+
+ let: '*foo* be: 10 in: {
+ *foo* is: 10
+ use_foo: 10
+ use_nested_foo: 10
+ let: '*foo* be: 100 in: {
+ *foo* is: 100
+ use_foo: 100
+ use_nested_foo: 100
+ }
+ }
+ }
+
+ it: "allows assigning dynamic vars without a scope" when: {
+ *foo* = "hello, world"
+ *foo* is: "hello, world"
+ let: '*foo* be: "byebye, world" in: {
+ *foo* is: "byebye, world"
+ use_foo: "byebye, world"
+ use_nested_foo: "byebye, world"
+ }
+ *foo* is: "hello, world"
+ use_foo: "hello, world"
+ use_nested_foo: "hello, world"
+ *foo* = nil
+ *foo* is: nil
+ use_foo: nil
+ use_nested_foo: nil
+ }
+
+ it: "preserves the current value of a dynvar when creating a new thread" when: {
+ *foo* = 100
+ *foo* is: 100
+ Thread new: {
+ *foo* is: 100
+ } . join
+ }
}
\ No newline at end of file