/
nil_class.fy
62 lines (51 loc) · 1.5 KB
/
nil_class.fy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
FancySpec describe: NilClass with: {
it: "is false for calling and: with any value" with: 'and: when: {
nil and: true . is: nil
nil and: 'foo . is: nil
nil and: nil . is: nil
false and: true . is: false
false and: 'foo . is: false
false and: nil . is: false
}
it: "is nil/false for calling && with any value" with: '&& when: {
(nil && true) is: nil
(nil && 'foo) is: nil
(nil && nil) is: nil
(false && true) is: false
(false && 'foo) is: false
(false && nil) is: false
}
it: "is true for calling or: with any non-nil value" with: 'or: when: {
nil or: true . is: true
nil or: 'foo . is: 'foo
}
it: "is nil/false for calling or: with a nil/false value" with: 'or: when: {
nil or: nil . is: nil
nil or: false . is: false
}
it: "is true for calling || with any non-nil value" with: '|| when: {
(nil || true) is: true
(nil || 'foo) is: 'foo
}
it: "is nil for calling || with a nil value" with: '|| when: {
(nil || nil) is: nil
}
it: "does not call the block" with: 'if_true: when: {
nil if_true: { 'then } . is: nil
}
it: "does not call the block" with: 'if_false: when: {
nil if_false: { 'false } . is: nil
}
it: "is nil" with: 'nil? when: {
nil nil? is: true
}
it: "is false" with: 'false? when: {
nil false? is: false
}
it: "is not true" with: 'true? when: {
nil true? is: false
}
it: "calls the block if nil" with: 'if_nil: when: {
nil if_nil: { 'is_nil } . is: 'is_nil
}
}