8
8
9
9
const { strict : assert } = require ( "assert" ) ;
10
10
11
- const { set_global, with_field , zrequire} = require ( "../zjsunit/namespace" ) ;
11
+ const { set_global, zrequire} = require ( "../zjsunit/namespace" ) ;
12
12
const { run_test} = require ( "../zjsunit/test" ) ;
13
13
14
14
const peer_data = zrequire ( "peer_data" ) ;
@@ -118,8 +118,7 @@ run_test("subscribers", () => {
118
118
assert ( ! stream_data . is_user_subscribed ( sub . stream_id , brutus . user_id ) ) ;
119
119
120
120
// add
121
- let ok = peer_data . add_subscriber ( sub . stream_id , brutus . user_id ) ;
122
- assert ( ok ) ;
121
+ peer_data . add_subscriber ( sub . stream_id , brutus . user_id ) ;
123
122
assert ( stream_data . is_user_subscribed ( sub . stream_id , brutus . user_id ) ) ;
124
123
sub = stream_data . get_sub ( "Rome" ) ;
125
124
assert . equal ( peer_data . get_subscriber_count ( sub . stream_id ) , 1 ) ;
@@ -134,7 +133,7 @@ run_test("subscribers", () => {
134
133
assert . equal ( peer_data . get_subscriber_count ( sub . stream_id ) , 1 ) ;
135
134
136
135
// remove
137
- ok = peer_data . remove_subscriber ( sub . stream_id , brutus . user_id ) ;
136
+ let ok = peer_data . remove_subscriber ( sub . stream_id , brutus . user_id ) ;
138
137
assert ( ok ) ;
139
138
assert ( ! stream_data . is_user_subscribed ( sub . stream_id , brutus . user_id ) ) ;
140
139
sub = stream_data . get_sub ( "Rome" ) ;
@@ -144,15 +143,15 @@ run_test("subscribers", () => {
144
143
145
144
blueslip . expect ( "warn" , "Undefined user_id passed to function is_user_subscribed" ) ;
146
145
assert . equal ( stream_data . is_user_subscribed ( sub . stream_id , undefined ) , undefined ) ;
146
+ blueslip . reset ( ) ;
147
147
148
148
// Verify noop for bad stream when removing subscriber
149
149
const bad_stream_id = 999999 ;
150
- blueslip . expect (
151
- "warn" ,
152
- "We got a remove_subscriber call for an untracked stream " + bad_stream_id ,
153
- ) ;
150
+ blueslip . expect ( "warn" , "We called get_user_set for an untracked stream: " + bad_stream_id ) ;
151
+ blueslip . expect ( "warn" , "We tried to remove invalid subscriber: 104" ) ;
154
152
ok = peer_data . remove_subscriber ( bad_stream_id , brutus . user_id ) ;
155
153
assert ( ! ok ) ;
154
+ blueslip . reset ( ) ;
156
155
157
156
// verify that removing an already-removed subscriber is a noop
158
157
blueslip . expect ( "warn" , "We tried to remove invalid subscriber: 104" ) ;
@@ -161,6 +160,7 @@ run_test("subscribers", () => {
161
160
assert ( ! stream_data . is_user_subscribed ( sub . stream_id , brutus . user_id ) ) ;
162
161
sub = stream_data . get_sub ( "Rome" ) ;
163
162
assert . equal ( peer_data . get_subscriber_count ( sub . stream_id ) , 0 ) ;
163
+ blueslip . reset ( ) ;
164
164
165
165
// Verify defensive code in set_subscribers, where the second parameter
166
166
// can be undefined.
@@ -172,8 +172,7 @@ run_test("subscribers", () => {
172
172
// Verify that we noop and don't crash when unsubscribed.
173
173
sub . subscribed = false ;
174
174
stream_data . update_calculated_fields ( sub ) ;
175
- ok = peer_data . add_subscriber ( sub . stream_id , brutus . user_id ) ;
176
- assert ( ok ) ;
175
+ peer_data . add_subscriber ( sub . stream_id , brutus . user_id ) ;
177
176
assert . equal ( stream_data . is_user_subscribed ( sub . stream_id , brutus . user_id ) , true ) ;
178
177
peer_data . remove_subscriber ( sub . stream_id , brutus . user_id ) ;
179
178
assert . equal ( stream_data . is_user_subscribed ( sub . stream_id , brutus . user_id ) , false ) ;
@@ -190,17 +189,18 @@ run_test("subscribers", () => {
190
189
assert . equal ( stream_data . is_user_subscribed ( sub . stream_id , brutus . user_id ) , undefined ) ;
191
190
peer_data . remove_subscriber ( sub . stream_id , brutus . user_id ) ;
192
191
assert . equal ( stream_data . is_user_subscribed ( sub . stream_id , brutus . user_id ) , undefined ) ;
193
-
194
- // Verify that we don't crash and return false for a bad stream.
195
- blueslip . expect ( "warn" , "We got an add_subscriber call for an untracked stream: 9999999" ) ;
196
- ok = peer_data . add_subscriber ( 9999999 , brutus . user_id ) ;
197
- assert ( ! ok ) ;
198
-
199
- // Verify that we don't crash and return false for a bad user id.
200
- blueslip . expect ( "error" , "Unknown user_id in get_by_user_id: 9999999" ) ;
201
- blueslip . expect ( "error" , "We tried to add invalid subscriber: 9999999" ) ;
202
- ok = peer_data . add_subscriber ( sub . stream_id , 9999999 ) ;
203
- assert ( ! ok ) ;
192
+ blueslip . reset ( ) ;
193
+
194
+ // Verify that we don't crash for a bad stream.
195
+ blueslip . expect ( "warn" , "We called get_user_set for an untracked stream: 9999999" ) ;
196
+ peer_data . add_subscriber ( 9999999 , brutus . user_id ) ;
197
+ blueslip . reset ( ) ;
198
+
199
+ // Verify that we don't crash for a bad user id.
200
+ blueslip . expect ( "error" , "Unknown user_id in get_by_user_id: 88888" ) ;
201
+ blueslip . expect ( "warn" , "We tried to add invalid subscriber: 88888" ) ;
202
+ peer_data . add_subscriber ( sub . stream_id , 88888 ) ;
203
+ blueslip . reset ( ) ;
204
204
} ) ;
205
205
206
206
run_test ( "get_subscriber_count" , ( ) => {
@@ -211,8 +211,8 @@ run_test("get_subscriber_count", () => {
211
211
} ;
212
212
stream_data . clear_subscriptions ( ) ;
213
213
214
- blueslip . expect ( "warn" , "We got a get_subscriber_count call for an untracked stream: 102" ) ;
215
- assert . equal ( peer_data . get_subscriber_count ( india . stream_id ) , undefined ) ;
214
+ blueslip . expect ( "warn" , "We called get_user_set for an untracked stream: 102" ) ;
215
+ assert . equal ( peer_data . get_subscriber_count ( india . stream_id ) , 0 ) ;
216
216
217
217
stream_data . add_sub ( india ) ;
218
218
assert . equal ( peer_data . get_subscriber_count ( india . stream_id ) , 0 ) ;
@@ -249,13 +249,6 @@ run_test("is_subscriber_subset", () => {
249
249
const sub_b = make_sub ( 302 , [ 2 , 3 ] ) ;
250
250
const sub_c = make_sub ( 303 , [ 1 , 2 , 3 ] ) ;
251
251
252
- // The bogus case should not come up in normal
253
- // use.
254
- // We simply punt on any calculation if
255
- // a stream has no subscriber info (like
256
- // maybe Zephyr?).
257
- const bogus = { } ; // no subscribers
258
-
259
252
const matrix = [
260
253
[ sub_a , sub_a , true ] ,
261
254
[ sub_a , sub_b , false ] ,
@@ -266,33 +259,21 @@ run_test("is_subscriber_subset", () => {
266
259
[ sub_c , sub_a , false ] ,
267
260
[ sub_c , sub_b , false ] ,
268
261
[ sub_c , sub_c , true ] ,
269
- [ bogus , bogus , false ] ,
270
262
] ;
271
263
272
264
for ( const row of matrix ) {
273
265
assert . equal ( peer_data . is_subscriber_subset ( row [ 0 ] . stream_id , row [ 1 ] . stream_id ) , row [ 2 ] ) ;
274
266
}
275
- } ) ;
276
267
277
- run_test ( "warn if subscribers are missing" , ( ) => {
278
- // This should only happen in this contrived test situation.
279
- stream_data . clear_subscriptions ( ) ;
280
- const sub = {
281
- name : "test" ,
282
- stream_id : 3 ,
283
- can_access_subscribers : true ,
284
- } ;
285
-
286
- with_field (
287
- stream_data ,
288
- "get_sub_by_id" ,
289
- ( ) => sub ,
290
- ( ) => {
291
- blueslip . expect ( "warn" , "We called is_user_subscribed for an untracked stream: 3" ) ;
292
- stream_data . is_user_subscribed ( sub . stream_id , me . user_id ) ;
293
-
294
- blueslip . expect ( "warn" , "We called get_subscribers for an untracked stream: 3" ) ;
295
- assert . deepEqual ( peer_data . get_subscribers ( sub . stream_id ) , [ ] ) ;
296
- } ,
297
- ) ;
268
+ // Two untracked streams should never be passed into us.
269
+ blueslip . expect ( "warn" , "We called get_user_set for an untracked stream: 88888" ) ;
270
+ blueslip . expect ( "warn" , "We called get_user_set for an untracked stream: 99999" ) ;
271
+ peer_data . is_subscriber_subset ( 99999 , 88888 ) ;
272
+ blueslip . reset ( ) ;
273
+
274
+ // Warn about hypothetical undefined stream_ids.
275
+ blueslip . expect ( "error" , "You must pass ids as numbers to peer_data. id = undefined" ) ;
276
+ blueslip . expect ( "warn" , "We called get_user_set for an untracked stream: undefined" ) ;
277
+ peer_data . is_subscriber_subset ( undefined , sub_a . stream_id ) ;
278
+ blueslip . reset ( ) ;
298
279
} ) ;
0 commit comments