@@ -71,7 +71,7 @@ test('transmit', t => {
71
71
t . deepEqual ( sends . shift ( ) , [
72
72
transmitterID ,
73
73
'transmit' ,
74
- encodeArgs ( 'deliver:ro+23:foo:;argsbytes' ) ,
74
+ encodeArgs ( '1: deliver:ro+23:foo:;argsbytes' ) ,
75
75
] ) ;
76
76
77
77
// bob!bar(alice, bob)
@@ -84,7 +84,7 @@ test('transmit', t => {
84
84
t . deepEqual ( sends . shift ( ) , [
85
85
transmitterID ,
86
86
'transmit' ,
87
- encodeArgs ( 'deliver:ro+23:bar::ro-20:ro+23;argsbytes' ) ,
87
+ encodeArgs ( '2: deliver:ro+23:bar::ro-20:ro+23;argsbytes' ) ,
88
88
] ) ;
89
89
// the outbound ro-20 should match an inbound ro+20, both represent 'alice'
90
90
t . is ( getLocalForRemote ( remoteID , 'ro+20' ) , aliceLocal ) ;
@@ -98,7 +98,7 @@ test('transmit', t => {
98
98
t . deepEqual ( sends . shift ( ) , [
99
99
transmitterID ,
100
100
'transmit' ,
101
- encodeArgs ( 'deliver:ro+23:bar::ro-20:ro+23;argsbytes' ) ,
101
+ encodeArgs ( '3: deliver:ro+23:bar::ro-20:ro+23;argsbytes' ) ,
102
102
] ) ;
103
103
104
104
// bob!cat(alice, bob, ayana)
@@ -112,7 +112,7 @@ test('transmit', t => {
112
112
t . deepEqual ( sends . shift ( ) , [
113
113
transmitterID ,
114
114
'transmit' ,
115
- encodeArgs ( 'deliver:ro+23:cat::ro-20:ro+23:ro-21;argsbytes' ) ,
115
+ encodeArgs ( '4: deliver:ro+23:cat::ro-20:ro+23:ro-21;argsbytes' ) ,
116
116
] ) ;
117
117
} ) ;
118
118
@@ -143,7 +143,7 @@ test('receive', t => {
143
143
d . deliver (
144
144
receiverID ,
145
145
'receive' ,
146
- encodeArgs ( `deliver:${ bobRemote } :foo:;argsbytes` ) ,
146
+ encodeArgs ( `1: deliver:${ bobRemote } :foo:;argsbytes` ) ,
147
147
null ,
148
148
) ;
149
149
t . deepEqual ( sends . shift ( ) , [ bobKernel , 'foo' , capdata ( 'argsbytes' ) ] ) ;
@@ -152,7 +152,7 @@ test('receive', t => {
152
152
d . deliver (
153
153
receiverID ,
154
154
'receive' ,
155
- encodeArgs ( `deliver:${ bobRemote } :bar::ro-20:${ bobRemote } ;argsbytes` ) ,
155
+ encodeArgs ( `2: deliver:${ bobRemote } :bar::ro-20:${ bobRemote } ;argsbytes` ) ,
156
156
null ,
157
157
) ;
158
158
const expectedAliceKernel = 'o+31' ;
@@ -168,10 +168,11 @@ test('receive', t => {
168
168
t . is ( getLocalForKernel ( expectedAliceKernel ) , 'lo11' ) ;
169
169
170
170
// bob!bar(alice, bob), again, to test stability
171
+ // also test absent sequence number
171
172
d . deliver (
172
173
receiverID ,
173
174
'receive' ,
174
- encodeArgs ( `deliver:${ bobRemote } :bar::ro-20:${ bobRemote } ;argsbytes` ) ,
175
+ encodeArgs ( `: deliver:${ bobRemote } :bar::ro-20:${ bobRemote } ;argsbytes` ) ,
175
176
null ,
176
177
) ;
177
178
t . deepEqual ( sends . shift ( ) , [
@@ -185,7 +186,9 @@ test('receive', t => {
185
186
d . deliver (
186
187
receiverID ,
187
188
'receive' ,
188
- encodeArgs ( `deliver:${ bobRemote } :cat::ro-20:${ bobRemote } :ro-21;argsbytes` ) ,
189
+ encodeArgs (
190
+ `4:deliver:${ bobRemote } :cat::ro-20:${ bobRemote } :ro-21;argsbytes` ,
191
+ ) ,
189
192
null ,
190
193
) ;
191
194
t . deepEqual ( sends . shift ( ) , [
@@ -194,6 +197,18 @@ test('receive', t => {
194
197
capdata ( 'argsbytes' , [ expectedAliceKernel , bobKernel , expectedAyanaKernel ] ) ,
195
198
] ) ;
196
199
200
+ // react to bad sequence number
201
+ t . throws (
202
+ ( ) =>
203
+ d . deliver (
204
+ receiverID ,
205
+ 'receive' ,
206
+ encodeArgs ( `47:deliver:${ bobRemote } :bar::ro-20:${ bobRemote } ;argsbytes` ) ,
207
+ null ,
208
+ ) ,
209
+ { message : / u n e x p e c t e d r e c v s e q N u m \( a s t r i n g \) / } ,
210
+ ) ;
211
+
197
212
// make sure comms can tolerate dropExports, even if it's a no-op
198
213
d . dropExports ( [ expectedAliceKernel , expectedAyanaKernel ] ) ;
199
214
} ) ;
0 commit comments