@@ -76,24 +76,45 @@ describe("Machine with entry and exit actions", () => {
76
76
77
77
test ( "sending events" , async ( ) => {
78
78
const loader = start ( Loader ) ;
79
- expect ( loader . current ) . toEqual ( "idle" ) ;
79
+ expect ( loader . value ) . toMatchObject ( {
80
+ change : 0 ,
81
+ state : "idle" ,
82
+ actions : [ ]
83
+ } ) ;
84
+ expect ( loader . value ) . toBe ( loader . value ) ;
80
85
expect ( loader . changeCount ) . toEqual ( 0 ) ;
86
+ expect ( loader . current ) . toEqual ( "idle" ) ;
87
+
88
+ const valueA = loader . value ;
81
89
82
90
loader . next ( "NOOP" ) ;
83
91
expect ( loader . current ) . toEqual ( "idle" ) ;
84
92
expect ( loader . changeCount ) . toEqual ( 0 ) ;
93
+ expect ( loader . value ) . toBe ( valueA ) ;
85
94
86
95
const transitionResult = loader . next ( "FETCH" ) ;
87
96
expect ( fetch ) . toHaveBeenCalledWith ( "https://example.org/" ) ;
88
- expect ( transitionResult . actions ) . toEqual ( [
89
- { type : "entry" , f : fetchData } ,
90
- ] ) ;
97
+ expect ( transitionResult . value ) . toMatchObject ( {
98
+ change : 1 ,
99
+ state : "loading" ,
100
+ actions : [
101
+ { type : "entry" , f : fetchData }
102
+ ]
103
+ } ) ;
104
+ expect ( loader . value ) . toMatchObject ( {
105
+ change : 1 ,
106
+ state : "loading" ,
107
+ actions : [
108
+ { type : "entry" , f : fetchData }
109
+ ]
110
+ } ) ;
111
+ expect ( loader . value ) . not . toBe ( valueA ) ;
91
112
expect ( loader . current ) . toEqual ( "loading" ) ;
92
113
expect ( loader . changeCount ) . toEqual ( 1 ) ;
93
114
expect ( finishedLoading ) . toHaveBeenCalledTimes ( 0 ) ;
94
115
95
- await expect ( loader . results ) . resolves . toEqual ( { fetchData : 42 } ) ;
96
- await expect ( Promise . resolve ( transitionResult ) ) . resolves . toEqual ( {
116
+ await expect ( loader . value . results ) . resolves . toEqual ( { fetchData : 42 } ) ;
117
+ await expect ( Promise . resolve ( transitionResult . value . results ) ) . resolves . toEqual ( {
97
118
fetchData : 42 ,
98
119
} ) ;
99
120
expect ( finishedLoading ) . toHaveBeenCalledTimes ( 1 ) ;
@@ -118,19 +139,28 @@ describe("Machine with entry and exit actions", () => {
118
139
119
140
test ( "sending events" , async ( ) => {
120
141
const loader = start ( Loader ) ;
121
- expect ( loader . current ) . toEqual ( "idle" ) ;
142
+ expect ( loader . value ) . toMatchObject ( {
143
+ change : 0 ,
144
+ state : "idle" ,
145
+ actions : [ ]
146
+ } ) ;
122
147
123
148
const transitionResult = loader . next ( "FETCH" ) ;
124
149
expect ( fetch ) . toHaveBeenCalledTimes ( 1 ) ;
125
150
expect ( fetch ) . toHaveBeenLastCalledWith ( "https://example.org/" ) ;
126
- expect ( transitionResult . actions ) . toEqual ( [
151
+ expect ( transitionResult . value . actions ) . toEqual ( [
127
152
{ type : "entry" , f : fetchData } ,
128
153
] ) ;
129
- expect ( loader . current ) . toEqual ( "loading" ) ;
130
- expect ( loader . changeCount ) . toEqual ( 1 ) ;
154
+ expect ( loader . value ) . toMatchObject ( {
155
+ change : 1 ,
156
+ state : "loading" ,
157
+ actions : [
158
+ { type : "entry" , f : fetchData } ,
159
+ ]
160
+ } ) ;
131
161
132
- await expect ( loader . results ) . rejects . toEqual ( new Error ( "Failed!" ) ) ;
133
- await expect ( Promise . resolve ( transitionResult ) ) . rejects . toEqual (
162
+ await expect ( loader . value . results ) . rejects . toEqual ( new Error ( "Failed!" ) ) ;
163
+ await expect ( Promise . resolve ( transitionResult . value . results ) ) . rejects . toEqual (
134
164
new Error ( "Failed!" )
135
165
) ;
136
166
expect ( loader . changeCount ) . toEqual ( 2 ) ;
@@ -211,7 +241,7 @@ describe.skip("Fetch with abort signal", () => {
211
241
212
242
const transitionResult = loader . next ( "FETCH" ) ;
213
243
expect ( fetch ) . toHaveBeenCalledWith ( "https://example.org/" ) ;
214
- expect ( transitionResult . actions ) . toEqual ( [
244
+ expect ( transitionResult . value . actions ) . toEqual ( [
215
245
{ type : "entry" , f : fetchData } ,
216
246
] ) ;
217
247
expect ( loader . current ) . toEqual ( "loading" ) ;
@@ -249,7 +279,7 @@ describe.skip("Fetch with abort signal", () => {
249
279
const transitionResult = loader . next ( "FETCH" ) ;
250
280
expect ( fetch ) . toHaveBeenCalledTimes ( 1 ) ;
251
281
expect ( fetch ) . toHaveBeenLastCalledWith ( "https://example.org/" ) ;
252
- expect ( transitionResult . actions ) . toEqual ( [
282
+ expect ( transitionResult . value . actions ) . toEqual ( [
253
283
{ type : "entry" , f : fetchData } ,
254
284
] ) ;
255
285
expect ( loader . current ) . toEqual ( "loading" ) ;
0 commit comments