1
- // @flow strict-local
1
+ /* @flow strict-local */
2
2
import deepFreeze from 'deep-freeze' ;
3
3
4
4
import outboxReducer from '../outboxReducer' ;
@@ -12,96 +12,71 @@ describe('outboxReducer', () => {
12
12
const message1 = eg . streamOutbox ( { content : 'New one' } ) ;
13
13
const message2 = eg . streamOutbox ( { content : 'Another one' } ) ;
14
14
const message3 = eg . streamOutbox ( { content : 'Message already sent' , isSent : true } ) ;
15
- const initialState = deepFreeze ( [ message1 , message2 , message3 ] ) ;
16
15
17
- const action = eg . action . register_complete ;
18
-
19
- const expectedState = [ message1 , message2 ] ;
20
-
21
- const actualState = outboxReducer ( initialState , action ) ;
22
-
23
- expect ( actualState ) . toEqual ( expectedState ) ;
16
+ const prevState = deepFreeze ( [ message1 , message2 , message3 ] ) ;
17
+ expect ( outboxReducer ( prevState , eg . action . register_complete ) ) . toEqual ( [ message1 , message2 ] ) ;
24
18
} ) ;
25
19
} ) ;
26
20
27
21
describe ( 'MESSAGE_SEND_START' , ( ) => {
28
22
test ( 'add a new message to the outbox' , ( ) => {
29
23
const message = eg . streamOutbox ( { content : 'New one' } ) ;
30
24
31
- const initialState = deepFreeze ( [ ] ) ;
32
-
33
- const action = deepFreeze ( {
34
- type : MESSAGE_SEND_START ,
35
- outbox : message ,
36
- } ) ;
37
-
38
- const expectedState = [ message ] ;
39
-
40
- const actualState = outboxReducer ( initialState , action ) ;
41
-
42
- expect ( actualState ) . toEqual ( expectedState ) ;
25
+ const prevState = deepFreeze ( [ ] ) ;
26
+ expect (
27
+ outboxReducer ( prevState , deepFreeze ( { type : MESSAGE_SEND_START , outbox : message } ) ) ,
28
+ ) . toEqual ( [ message ] ) ;
43
29
} ) ;
44
30
45
31
test ( 'do not add a message with a duplicate timestamp to the outbox' , ( ) => {
46
32
const message1 = eg . streamOutbox ( { content : 'hello' , timestamp : 123 } ) ;
47
33
const message2 = eg . streamOutbox ( { content : 'hello twice' , timestamp : 123 } ) ;
48
34
49
- const initialState = deepFreeze ( [ message1 ] ) ;
50
-
51
- const action = deepFreeze ( {
52
- type : MESSAGE_SEND_START ,
53
- outbox : message2 ,
54
- } ) ;
55
-
56
- const actualState = outboxReducer ( initialState , action ) ;
57
-
58
- expect ( actualState ) . toBe ( initialState ) ;
35
+ const prevState = deepFreeze ( [ message1 ] ) ;
36
+ expect (
37
+ outboxReducer ( prevState , deepFreeze ( { type : MESSAGE_SEND_START , outbox : message2 } ) ) ,
38
+ ) . toBe ( prevState ) ;
59
39
} ) ;
60
40
} ) ;
61
41
62
42
describe ( 'EVENT_NEW_MESSAGE' , ( ) => {
63
43
test ( 'do not mutate state if a message is not removed' , ( ) => {
64
- const initialState = deepFreeze ( [ eg . streamOutbox ( { timestamp : 546 } ) ] ) ;
65
-
66
44
const message = eg . streamMessage ( { timestamp : 123 } ) ;
67
45
68
- const action = eg . mkActionEventNewMessage ( message , {
69
- local_message_id : message . timestamp ,
70
- } ) ;
71
-
72
- const actualState = outboxReducer ( initialState , action ) ;
73
- expect ( actualState ) . toBe ( initialState ) ;
46
+ const prevState = deepFreeze ( [ eg . streamOutbox ( { timestamp : 546 } ) ] ) ;
47
+ expect (
48
+ outboxReducer (
49
+ prevState ,
50
+ eg . mkActionEventNewMessage ( message , { local_message_id : message . timestamp } ) ,
51
+ ) ,
52
+ ) . toBe ( prevState ) ;
74
53
} ) ;
75
54
76
55
test ( 'remove message if local_message_id matches' , ( ) => {
77
56
const message1 = eg . streamOutbox ( { timestamp : 546 } ) ;
78
57
const message2 = eg . streamOutbox ( { timestamp : 150238512430 } ) ;
79
58
const message3 = eg . streamOutbox ( { timestamp : 150238594540 } ) ;
80
- const initialState = deepFreeze ( [ message1 , message2 , message3 ] ) ;
81
59
82
- const action = eg . mkActionEventNewMessage ( eg . streamMessage ( ) , {
83
- local_message_id : 546 ,
84
- } ) ;
85
-
86
- const expectedState = [ message2 , message3 ] ;
87
-
88
- const actualState = outboxReducer ( initialState , action ) ;
89
-
90
- expect ( actualState ) . toEqual ( expectedState ) ;
60
+ const prevState = deepFreeze ( [ message1 , message2 , message3 ] ) ;
61
+ expect (
62
+ outboxReducer (
63
+ prevState ,
64
+ eg . mkActionEventNewMessage ( eg . streamMessage ( ) , { local_message_id : 546 } ) ,
65
+ ) ,
66
+ ) . toEqual ( [ message2 , message3 ] ) ;
91
67
} ) ;
92
68
93
69
test ( "remove nothing if local_message_id doesn't match" , ( ) => {
94
70
const message1 = eg . streamOutbox ( { timestamp : 546 } ) ;
95
71
const message2 = eg . streamOutbox ( { timestamp : 150238512430 } ) ;
96
72
const message3 = eg . streamOutbox ( { timestamp : 150238594540 } ) ;
97
- const initialState = deepFreeze ( [ message1 , message2 , message3 ] ) ;
98
-
99
- const action = eg . mkActionEventNewMessage ( eg . streamMessage ( ) , {
100
- local_message_id : 15023859 ,
101
- } ) ;
102
73
103
- const actualState = outboxReducer ( initialState , action ) ;
104
- expect ( actualState ) . toBe ( initialState ) ;
74
+ const prevState = deepFreeze ( [ message1 , message2 , message3 ] ) ;
75
+ const actualState = outboxReducer (
76
+ prevState ,
77
+ eg . mkActionEventNewMessage ( eg . streamMessage ( ) , { local_message_id : 15023859 } ) ,
78
+ ) ;
79
+ expect ( actualState ) . toBe ( prevState ) ;
105
80
} ) ;
106
81
} ) ;
107
82
} ) ;
0 commit comments