1
+ import Call from '../../../src/value/call'
1
2
import Stubbing from '../../../src/value/stubbing'
2
3
3
4
module . exports = {
@@ -7,7 +8,7 @@ module.exports = {
7
8
8
9
assert . equal ( subject . hasTimesRemaining , true )
9
10
10
- subject . incrementSatisfactions ( )
11
+ subject . addSatisfyingCall ( new Call ( ) )
11
12
12
13
assert . equal ( subject . hasTimesRemaining , true )
13
14
} ,
@@ -16,7 +17,7 @@ module.exports = {
16
17
17
18
assert . equal ( subject . hasTimesRemaining , false )
18
19
19
- subject . incrementSatisfactions ( )
20
+ subject . addSatisfyingCall ( new Call ( ) )
20
21
21
22
assert . equal ( subject . hasTimesRemaining , false )
22
23
} ,
@@ -25,7 +26,7 @@ module.exports = {
25
26
26
27
assert . equal ( subject . hasTimesRemaining , true )
27
28
28
- subject . incrementSatisfactions ( )
29
+ subject . addSatisfyingCall ( new Call ( ) )
29
30
30
31
assert . equal ( subject . hasTimesRemaining , false )
31
32
} ,
@@ -34,14 +35,61 @@ module.exports = {
34
35
35
36
assert . equal ( subject . hasTimesRemaining , true )
36
37
37
- subject . incrementSatisfactions ( )
38
+ subject . addSatisfyingCall ( new Call ( ) )
38
39
39
40
assert . equal ( subject . hasTimesRemaining , true )
40
41
41
- subject . incrementSatisfactions ( )
42
+ subject . addSatisfyingCall ( new Call ( ) )
43
+
44
+ assert . equal ( subject . hasTimesRemaining , false )
45
+ } ,
46
+ 'guards against duplicate calls (only count once)' : ( ) => {
47
+ const subject = new Stubbing ( null , null , null , { times : 2 } )
48
+
49
+ assert . equal ( subject . hasTimesRemaining , true )
50
+
51
+ const call = new Call ( )
52
+ subject . addSatisfyingCall ( call )
53
+ subject . addSatisfyingCall ( call )
54
+ subject . addSatisfyingCall ( call )
55
+
56
+ assert . equal ( subject . hasTimesRemaining , true )
57
+
58
+ subject . addSatisfyingCall ( new Call ( ) )
42
59
43
60
assert . equal ( subject . hasTimesRemaining , false )
44
61
}
62
+ } ,
63
+ '.currentOutcome' : {
64
+ 'one outcome set' : ( ) => {
65
+ const subject = new Stubbing ( null , null , [ 'pants' ] )
66
+
67
+ assert . equal ( subject . currentOutcome , 'pants' )
68
+
69
+ subject . addSatisfyingCall ( new Call ( ) )
45
70
71
+ assert . equal ( subject . currentOutcome , 'pants' )
72
+
73
+ subject . addSatisfyingCall ( new Call ( ) )
74
+
75
+ assert . equal ( subject . currentOutcome , 'pants' )
76
+ } ,
77
+ 'two outcomes set' : ( ) => {
78
+ const subject = new Stubbing ( null , null , [ 'pants' , 'hat' ] )
79
+
80
+ assert . equal ( subject . currentOutcome , 'pants' )
81
+
82
+ subject . addSatisfyingCall ( new Call ( ) )
83
+
84
+ assert . equal ( subject . currentOutcome , 'pants' )
85
+
86
+ subject . addSatisfyingCall ( new Call ( ) )
87
+
88
+ assert . equal ( subject . currentOutcome , 'hat' )
89
+
90
+ subject . addSatisfyingCall ( new Call ( ) )
91
+
92
+ assert . equal ( subject . currentOutcome , 'hat' )
93
+ }
46
94
}
47
95
}
0 commit comments