@juzi/wechaty 1.0.156 → 1.0.158

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/cjs/src/package-json.js +4 -4
  2. package/dist/cjs/src/user-modules/contact.d.ts +24 -0
  3. package/dist/cjs/src/user-modules/contact.d.ts.map +1 -1
  4. package/dist/cjs/src/user-modules/contact.js +55 -0
  5. package/dist/cjs/src/user-modules/contact.js.map +1 -1
  6. package/dist/cjs/src/user-modules/contact.spec.js +156 -0
  7. package/dist/cjs/src/user-modules/contact.spec.js.map +1 -1
  8. package/dist/cjs/src/user-modules/room.d.ts +23 -0
  9. package/dist/cjs/src/user-modules/room.d.ts.map +1 -1
  10. package/dist/cjs/src/user-modules/room.js +52 -0
  11. package/dist/cjs/src/user-modules/room.js.map +1 -1
  12. package/dist/cjs/src/user-modules/room.spec.js +156 -0
  13. package/dist/cjs/src/user-modules/room.spec.js.map +1 -1
  14. package/dist/esm/src/package-json.js +4 -4
  15. package/dist/esm/src/user-modules/contact.d.ts +24 -0
  16. package/dist/esm/src/user-modules/contact.d.ts.map +1 -1
  17. package/dist/esm/src/user-modules/contact.js +55 -0
  18. package/dist/esm/src/user-modules/contact.js.map +1 -1
  19. package/dist/esm/src/user-modules/contact.spec.js +157 -1
  20. package/dist/esm/src/user-modules/contact.spec.js.map +1 -1
  21. package/dist/esm/src/user-modules/room.d.ts +23 -0
  22. package/dist/esm/src/user-modules/room.d.ts.map +1 -1
  23. package/dist/esm/src/user-modules/room.js +52 -0
  24. package/dist/esm/src/user-modules/room.js.map +1 -1
  25. package/dist/esm/src/user-modules/room.spec.js +156 -0
  26. package/dist/esm/src/user-modules/room.spec.js.map +1 -1
  27. package/package.json +3 -3
  28. package/src/package-json.ts +4 -4
  29. package/src/user-modules/contact.spec.ts +212 -0
  30. package/src/user-modules/contact.ts +67 -0
  31. package/src/user-modules/room.spec.ts +210 -0
  32. package/src/user-modules/room.ts +63 -0
@@ -18,7 +18,7 @@
18
18
  * limitations under the License.
19
19
  *
20
20
  */
21
- import { test, } from 'tstest';
21
+ import { test, sinon, } from 'tstest';
22
22
  import { PuppetMock } from '@juzi/wechaty-puppet-mock';
23
23
  import { WechatyBuilder } from '../wechaty-builder.js';
24
24
  import { ContactImpl, } from './contact.js';
@@ -68,6 +68,162 @@ test('should throw when instanciate the global class', async (t) => {
68
68
  t.fail(c.toString());
69
69
  }, 'should throw when we instanciate a global class');
70
70
  });
71
+ test('findAllIter() yields every contact returned by contactSearch', async (t) => {
72
+ const TOTAL = 7;
73
+ const sandbox = sinon.createSandbox();
74
+ const puppet = new PuppetMock();
75
+ const wechaty = WechatyBuilder.build({ puppet });
76
+ const idList = Array.from({ length: TOTAL }, (_, idx) => `c-${idx}`);
77
+ const buildPayload = (id) => ({ id, name: `name-${id}` });
78
+ sandbox.stub(puppet, 'contactSearch').resolves(idList);
79
+ sandbox.stub(puppet, 'batchContactPayload').callsFake(async (...args) => {
80
+ const ids = args[0];
81
+ return new Map(ids.map(id => [id, buildPayload(id)]));
82
+ });
83
+ await wechaty.start();
84
+ const bot = puppet.mocker.createContact({ name: 'bot' });
85
+ await puppet.mocker.login(bot);
86
+ const seen = [];
87
+ for await (const chunk of wechaty.Contact.findAllIter()) {
88
+ for (const contact of chunk) {
89
+ seen.push(contact.id);
90
+ }
91
+ }
92
+ t.equal(seen.length, TOTAL, `should yield ${TOTAL} contacts`);
93
+ t.same(seen, idList, 'should yield contacts in search order');
94
+ await wechaty.stop();
95
+ });
96
+ test('findAllIter() chunks 101 contacts into [100, 1] at default batch=100', async (t) => {
97
+ const TOTAL = 101;
98
+ const sandbox = sinon.createSandbox();
99
+ const puppet = new PuppetMock();
100
+ const wechaty = WechatyBuilder.build({ puppet });
101
+ const idList = Array.from({ length: TOTAL }, (_, idx) => `c-${idx}`);
102
+ sandbox.stub(puppet, 'contactSearch').resolves(idList);
103
+ sandbox.stub(puppet, 'batchContactPayload').callsFake(async (...args) => {
104
+ const ids = args[0];
105
+ return new Map(ids.map(id => [id, { id, name: id }]));
106
+ });
107
+ await wechaty.start();
108
+ const bot = puppet.mocker.createContact({ name: 'bot' });
109
+ await puppet.mocker.login(bot);
110
+ const sizes = [];
111
+ for await (const chunk of wechaty.Contact.findAllIter()) {
112
+ sizes.push(chunk.length);
113
+ }
114
+ t.same(sizes, [100, 1], 'should split into two batches: 100 and 1');
115
+ await wechaty.stop();
116
+ });
117
+ test('findAllIter() honors early break without throwing', async (t) => {
118
+ const TOTAL = 250;
119
+ const sandbox = sinon.createSandbox();
120
+ const puppet = new PuppetMock();
121
+ const wechaty = WechatyBuilder.build({ puppet });
122
+ const idList = Array.from({ length: TOTAL }, (_, idx) => `c-${idx}`);
123
+ sandbox.stub(puppet, 'contactSearch').resolves(idList);
124
+ const batchSpy = sandbox.stub(puppet, 'batchContactPayload').callsFake(async (...args) => {
125
+ const ids = args[0];
126
+ return new Map(ids.map(id => [id, { id, name: id }]));
127
+ });
128
+ await wechaty.start();
129
+ const bot = puppet.mocker.createContact({ name: 'bot' });
130
+ await puppet.mocker.login(bot);
131
+ let received = 0;
132
+ await t.resolves((async () => {
133
+ for await (const chunk of wechaty.Contact.findAllIter()) {
134
+ received += chunk.length;
135
+ if (received >= 100) {
136
+ break;
137
+ }
138
+ }
139
+ })(), 'breaking the loop should not throw');
140
+ t.equal(received, 100, 'should stop after the first batch');
141
+ t.equal(batchSpy.callCount, 1, 'should not invoke batchContactPayload again after break');
142
+ await wechaty.stop();
143
+ });
144
+ test('findAllIter() invokes batchContactPayload ceil(N/batch) times, not N times', async (t) => {
145
+ const TOTAL = 100;
146
+ const BATCH = 25;
147
+ const sandbox = sinon.createSandbox();
148
+ const puppet = new PuppetMock();
149
+ const wechaty = WechatyBuilder.build({ puppet });
150
+ const idList = Array.from({ length: TOTAL }, (_, idx) => `c-${idx}`);
151
+ sandbox.stub(puppet, 'contactSearch').resolves(idList);
152
+ const batchSpy = sandbox.stub(puppet, 'batchContactPayload').callsFake(async (...args) => {
153
+ const ids = args[0];
154
+ return new Map(ids.map(id => [id, { id, name: id }]));
155
+ });
156
+ const rawSpy = sandbox.spy(puppet, 'contactRawPayload');
157
+ await wechaty.start();
158
+ const bot = puppet.mocker.createContact({ name: 'bot' });
159
+ await puppet.mocker.login(bot);
160
+ const rawCountBefore = rawSpy.callCount;
161
+ let received = 0;
162
+ for await (const chunk of wechaty.Contact.findAllIter(undefined, { batch: BATCH })) {
163
+ received += chunk.length;
164
+ }
165
+ t.equal(received, TOTAL, 'should iterate all contacts');
166
+ t.equal(batchSpy.callCount, Math.ceil(TOTAL / BATCH), `should invoke batchContactPayload ${Math.ceil(TOTAL / BATCH)} times`);
167
+ t.equal(rawSpy.callCount, rawCountBefore, 'should never fall back to per-id contactRawPayload during iteration');
168
+ await wechaty.stop();
169
+ });
170
+ test('findAllIter() with empty contactSearch yields nothing and does not throw', async (t) => {
171
+ const sandbox = sinon.createSandbox();
172
+ const puppet = new PuppetMock();
173
+ const wechaty = WechatyBuilder.build({ puppet });
174
+ sandbox.stub(puppet, 'contactSearch').resolves([]);
175
+ const batchSpy = sandbox.stub(puppet, 'batchContactPayload').resolves(new Map());
176
+ await wechaty.start();
177
+ const bot = puppet.mocker.createContact({ name: 'bot' });
178
+ await puppet.mocker.login(bot);
179
+ let chunkCount = 0;
180
+ await t.resolves((async () => {
181
+ for await (const _chunk of wechaty.Contact.findAllIter()) {
182
+ chunkCount++;
183
+ }
184
+ })(), 'empty iteration should not throw');
185
+ t.equal(chunkCount, 0, 'should yield zero chunks');
186
+ t.equal(batchSpy.callCount, 0, 'should not call batchContactPayload when no ids');
187
+ await wechaty.stop();
188
+ });
189
+ test('findAllIter() throws when batch <= 0', async (t) => {
190
+ const sandbox = sinon.createSandbox();
191
+ const puppet = new PuppetMock();
192
+ const wechaty = WechatyBuilder.build({ puppet });
193
+ sandbox.stub(puppet, 'contactSearch').resolves([]);
194
+ sandbox.stub(puppet, 'batchContactPayload').resolves(new Map());
195
+ await wechaty.start();
196
+ const bot = puppet.mocker.createContact({ name: 'bot' });
197
+ await puppet.mocker.login(bot);
198
+ for (const badBatch of [0, -1]) {
199
+ await t.rejects((async () => {
200
+ for await (const _chunk of wechaty.Contact.findAllIter(undefined, { batch: badBatch })) {
201
+ // should never reach here
202
+ }
203
+ })(), /batch must be positive/, `should throw when batch=${badBatch}`);
204
+ }
205
+ await wechaty.stop();
206
+ });
207
+ test('findAllIter() skips ids missing from payloadMap', async (t) => {
208
+ const sandbox = sinon.createSandbox();
209
+ const puppet = new PuppetMock();
210
+ const wechaty = WechatyBuilder.build({ puppet });
211
+ sandbox.stub(puppet, 'contactSearch').resolves(['c1', 'c2', 'c3']);
212
+ sandbox.stub(puppet, 'batchContactPayload').resolves(new Map([['c1', { id: 'c1', name: 'name-c1' }]]));
213
+ await wechaty.start();
214
+ const bot = puppet.mocker.createContact({ name: 'bot' });
215
+ await puppet.mocker.login(bot);
216
+ const seen = [];
217
+ await t.resolves((async () => {
218
+ for await (const chunk of wechaty.Contact.findAllIter()) {
219
+ for (const contact of chunk) {
220
+ seen.push(contact.id);
221
+ }
222
+ }
223
+ })(), 'missing ids should not throw or stall iteration');
224
+ t.same(seen, ['c1'], 'should yield only contacts whose payload was returned');
225
+ await wechaty.stop();
226
+ });
71
227
  test('ProtectedProperties', async (t) => {
72
228
  const noOneLeft = true;
73
229
  t.ok(noOneLeft, 'should match Wechaty properties for every protected property');
@@ -1 +1 @@
1
- {"version":3,"file":"contact.spec.js","sourceRoot":"","sources":["../../../../src/user-modules/contact.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contact.spec.js","sourceRoot":"","sources":["../../../../src/user-modules/contact.spec.ts"],"names":[],"mappings":"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"}
@@ -111,6 +111,29 @@ declare class RoomMixin extends MixinBase implements SayableSayer {
111
111
  * const roomList = await bot.Room.find({topic: 'wechaty'})
112
112
  */
113
113
  static find(query: string | PUPPET.filters.Room): Promise<undefined | RoomInterface>;
114
+ /**
115
+ * Async iterator variant of {@link findAll} that yields rooms in batches.
116
+ *
117
+ * Each batch is materialised with a single `puppet.batchRoomPayload` RPC,
118
+ * so iterating N rooms costs roughly `ceil(N / batch)` round trips instead
119
+ * of N. Uses `puppet.batchRoomPayload` directly (required on the puppet
120
+ * abstract), so callers do not need a per-id fallback path. Callers may
121
+ * `break` between batches to short-circuit.
122
+ *
123
+ * @static
124
+ * @param {PUPPET.filters.Room} [query]
125
+ * @param {{ batch?: number }} [opts] batch size, default 100
126
+ * @returns {AsyncIterable<RoomInterface[]>}
127
+ * @example
128
+ * for await (const chunk of bot.Room.findAllIter()) {
129
+ * for (const room of chunk) {
130
+ * console.log(await room.topic())
131
+ * }
132
+ * }
133
+ */
134
+ static findAllIter(query?: PUPPET.filters.Room, opts?: {
135
+ batch?: number;
136
+ }): AsyncIterable<RoomInterface[]>;
114
137
  static batchLoadRooms(roomIdList: string[]): Promise<RoomInterface[]>;
115
138
  /** const roomList: RoomInterface[] = []
116
139
 
@@ -1 +1 @@
1
- {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.d.ts","sourceRoot":"","sources":["../../../../src/user-modules/room.ts"],"names":[],"mappings":"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"}
@@ -206,6 +206,58 @@ class RoomMixin extends MixinBase {
206
206
  log.warn('Room', 'find() all %d rooms are invalid', roomList.length);
207
207
  return undefined;
208
208
  }
209
+ /**
210
+ * Async iterator variant of {@link findAll} that yields rooms in batches.
211
+ *
212
+ * Each batch is materialised with a single `puppet.batchRoomPayload` RPC,
213
+ * so iterating N rooms costs roughly `ceil(N / batch)` round trips instead
214
+ * of N. Uses `puppet.batchRoomPayload` directly (required on the puppet
215
+ * abstract), so callers do not need a per-id fallback path. Callers may
216
+ * `break` between batches to short-circuit.
217
+ *
218
+ * @static
219
+ * @param {PUPPET.filters.Room} [query]
220
+ * @param {{ batch?: number }} [opts] batch size, default 100
221
+ * @returns {AsyncIterable<RoomInterface[]>}
222
+ * @example
223
+ * for await (const chunk of bot.Room.findAllIter()) {
224
+ * for (const room of chunk) {
225
+ * console.log(await room.topic())
226
+ * }
227
+ * }
228
+ */
229
+ static async *findAllIter(query, opts) {
230
+ const batch = opts?.batch ?? 100;
231
+ log.verbose('Room', 'findAllIter(%s, batch=%d)', JSON.stringify(query, stringifyFilter) || '', batch);
232
+ if (batch <= 0) {
233
+ throw new Error(`Room.findAllIter() batch must be positive, got ${batch}`);
234
+ }
235
+ const roomIdList = await this.wechaty.puppet.roomSearch(query);
236
+ if (!this.wechaty.isLoggedIn) {
237
+ throw new Error('Room.findAllIter() requires logged in');
238
+ }
239
+ for (let i = 0; i < roomIdList.length; i += batch) {
240
+ const idChunk = roomIdList.slice(i, i + batch);
241
+ const payloadMap = await this.wechaty.puppet.batchRoomPayload(idChunk);
242
+ const roomChunk = [];
243
+ for (const id of idChunk) {
244
+ const payload = payloadMap.get(id);
245
+ if (!payload) {
246
+ log.silly('Room', 'findAllIter() payload missing for id=%s, skip', id);
247
+ continue;
248
+ }
249
+ const room = this.wechaty.Room.load(id);
250
+ room.payload = payload;
251
+ roomChunk.push(room);
252
+ }
253
+ if (roomChunk.length > 0) {
254
+ yield roomChunk;
255
+ }
256
+ else {
257
+ log.warn('Room', 'findAllIter() batch all missing from payloadMap, idChunk=%j', idChunk);
258
+ }
259
+ }
260
+ }
209
261
  static async batchLoadRooms(roomIdList) {
210
262
  let continuousErrorCount = 0;
211
263
  let totalErrorCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../../../../src/user-modules/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../../../../src/user-modules/room.ts"],"names":[],"mappings":"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"}
@@ -183,6 +183,162 @@ test('room.say() smoke testing', async () => {
183
183
  });
184
184
  await wechaty.stop();
185
185
  });
186
+ test('Room.findAllIter() yields every room returned by roomSearch', async (t) => {
187
+ const TOTAL = 6;
188
+ const sandbox = sinon.createSandbox();
189
+ const puppet = new PuppetMock();
190
+ const wechaty = WechatyBuilder.build({ puppet });
191
+ const idList = Array.from({ length: TOTAL }, (_, idx) => `r-${idx}`);
192
+ const buildPayload = (id) => ({ id, topic: `topic-${id}`, memberIdList: [], adminIdList: [] });
193
+ sandbox.stub(puppet, 'roomSearch').resolves(idList);
194
+ sandbox.stub(puppet, 'batchRoomPayload').callsFake(async (...args) => {
195
+ const ids = args[0];
196
+ return new Map(ids.map(id => [id, buildPayload(id)]));
197
+ });
198
+ await wechaty.start();
199
+ const bot = puppet.mocker.createContact({ name: 'bot' });
200
+ await puppet.mocker.login(bot);
201
+ const seen = [];
202
+ for await (const chunk of wechaty.Room.findAllIter()) {
203
+ for (const room of chunk) {
204
+ seen.push(room.id);
205
+ }
206
+ }
207
+ t.equal(seen.length, TOTAL, `should yield ${TOTAL} rooms`);
208
+ t.same(seen, idList, 'should yield rooms in search order');
209
+ await wechaty.stop();
210
+ });
211
+ test('Room.findAllIter() chunks 101 rooms into [100, 1] at default batch=100', async (t) => {
212
+ const TOTAL = 101;
213
+ const sandbox = sinon.createSandbox();
214
+ const puppet = new PuppetMock();
215
+ const wechaty = WechatyBuilder.build({ puppet });
216
+ const idList = Array.from({ length: TOTAL }, (_, idx) => `r-${idx}`);
217
+ sandbox.stub(puppet, 'roomSearch').resolves(idList);
218
+ sandbox.stub(puppet, 'batchRoomPayload').callsFake(async (...args) => {
219
+ const ids = args[0];
220
+ return new Map(ids.map(id => [id, { id, topic: id, memberIdList: [], adminIdList: [] }]));
221
+ });
222
+ await wechaty.start();
223
+ const bot = puppet.mocker.createContact({ name: 'bot' });
224
+ await puppet.mocker.login(bot);
225
+ const sizes = [];
226
+ for await (const chunk of wechaty.Room.findAllIter()) {
227
+ sizes.push(chunk.length);
228
+ }
229
+ t.same(sizes, [100, 1], 'should split into two batches: 100 and 1');
230
+ await wechaty.stop();
231
+ });
232
+ test('Room.findAllIter() honors early break without throwing', async (t) => {
233
+ const TOTAL = 250;
234
+ const sandbox = sinon.createSandbox();
235
+ const puppet = new PuppetMock();
236
+ const wechaty = WechatyBuilder.build({ puppet });
237
+ const idList = Array.from({ length: TOTAL }, (_, idx) => `r-${idx}`);
238
+ sandbox.stub(puppet, 'roomSearch').resolves(idList);
239
+ const batchSpy = sandbox.stub(puppet, 'batchRoomPayload').callsFake(async (...args) => {
240
+ const ids = args[0];
241
+ return new Map(ids.map(id => [id, { id, topic: id, memberIdList: [], adminIdList: [] }]));
242
+ });
243
+ await wechaty.start();
244
+ const bot = puppet.mocker.createContact({ name: 'bot' });
245
+ await puppet.mocker.login(bot);
246
+ let received = 0;
247
+ await t.resolves((async () => {
248
+ for await (const chunk of wechaty.Room.findAllIter()) {
249
+ received += chunk.length;
250
+ if (received >= 100) {
251
+ break;
252
+ }
253
+ }
254
+ })(), 'breaking the loop should not throw');
255
+ t.equal(received, 100, 'should stop after the first batch');
256
+ t.equal(batchSpy.callCount, 1, 'should not invoke batchRoomPayload again after break');
257
+ await wechaty.stop();
258
+ });
259
+ test('Room.findAllIter() invokes batchRoomPayload ceil(N/batch) times, not N times', async (t) => {
260
+ const TOTAL = 100;
261
+ const BATCH = 25;
262
+ const sandbox = sinon.createSandbox();
263
+ const puppet = new PuppetMock();
264
+ const wechaty = WechatyBuilder.build({ puppet });
265
+ const idList = Array.from({ length: TOTAL }, (_, idx) => `r-${idx}`);
266
+ sandbox.stub(puppet, 'roomSearch').resolves(idList);
267
+ const batchSpy = sandbox.stub(puppet, 'batchRoomPayload').callsFake(async (...args) => {
268
+ const ids = args[0];
269
+ return new Map(ids.map(id => [id, { id, topic: id, memberIdList: [], adminIdList: [] }]));
270
+ });
271
+ const rawSpy = sandbox.spy(puppet, 'roomRawPayload');
272
+ await wechaty.start();
273
+ const bot = puppet.mocker.createContact({ name: 'bot' });
274
+ await puppet.mocker.login(bot);
275
+ const rawCountBefore = rawSpy.callCount;
276
+ let received = 0;
277
+ for await (const chunk of wechaty.Room.findAllIter(undefined, { batch: BATCH })) {
278
+ received += chunk.length;
279
+ }
280
+ t.equal(received, TOTAL, 'should iterate all rooms');
281
+ t.equal(batchSpy.callCount, Math.ceil(TOTAL / BATCH), `should invoke batchRoomPayload ${Math.ceil(TOTAL / BATCH)} times`);
282
+ t.equal(rawSpy.callCount, rawCountBefore, 'should never fall back to per-id roomRawPayload during iteration');
283
+ await wechaty.stop();
284
+ });
285
+ test('Room.findAllIter() with empty roomSearch yields nothing and does not throw', async (t) => {
286
+ const sandbox = sinon.createSandbox();
287
+ const puppet = new PuppetMock();
288
+ const wechaty = WechatyBuilder.build({ puppet });
289
+ sandbox.stub(puppet, 'roomSearch').resolves([]);
290
+ const batchSpy = sandbox.stub(puppet, 'batchRoomPayload').resolves(new Map());
291
+ await wechaty.start();
292
+ const bot = puppet.mocker.createContact({ name: 'bot' });
293
+ await puppet.mocker.login(bot);
294
+ let chunkCount = 0;
295
+ await t.resolves((async () => {
296
+ for await (const _chunk of wechaty.Room.findAllIter()) {
297
+ chunkCount++;
298
+ }
299
+ })(), 'empty iteration should not throw');
300
+ t.equal(chunkCount, 0, 'should yield zero chunks');
301
+ t.equal(batchSpy.callCount, 0, 'should not call batchRoomPayload when no ids');
302
+ await wechaty.stop();
303
+ });
304
+ test('Room.findAllIter() throws when batch <= 0', async (t) => {
305
+ const sandbox = sinon.createSandbox();
306
+ const puppet = new PuppetMock();
307
+ const wechaty = WechatyBuilder.build({ puppet });
308
+ sandbox.stub(puppet, 'roomSearch').resolves([]);
309
+ sandbox.stub(puppet, 'batchRoomPayload').resolves(new Map());
310
+ await wechaty.start();
311
+ const bot = puppet.mocker.createContact({ name: 'bot' });
312
+ await puppet.mocker.login(bot);
313
+ for (const badBatch of [0, -1]) {
314
+ await t.rejects((async () => {
315
+ for await (const _chunk of wechaty.Room.findAllIter(undefined, { batch: badBatch })) {
316
+ // should never reach here
317
+ }
318
+ })(), /batch must be positive/, `should throw when batch=${badBatch}`);
319
+ }
320
+ await wechaty.stop();
321
+ });
322
+ test('Room.findAllIter() skips ids missing from payloadMap', async (t) => {
323
+ const sandbox = sinon.createSandbox();
324
+ const puppet = new PuppetMock();
325
+ const wechaty = WechatyBuilder.build({ puppet });
326
+ sandbox.stub(puppet, 'roomSearch').resolves(['r1', 'r2', 'r3']);
327
+ sandbox.stub(puppet, 'batchRoomPayload').resolves(new Map([['r1', { id: 'r1', topic: 'topic-r1', memberIdList: [], adminIdList: [] }]]));
328
+ await wechaty.start();
329
+ const bot = puppet.mocker.createContact({ name: 'bot' });
330
+ await puppet.mocker.login(bot);
331
+ const seen = [];
332
+ await t.resolves((async () => {
333
+ for await (const chunk of wechaty.Room.findAllIter()) {
334
+ for (const room of chunk) {
335
+ seen.push(room.id);
336
+ }
337
+ }
338
+ })(), 'missing ids should not throw or stall iteration');
339
+ t.same(seen, ['r1'], 'should yield only rooms whose payload was returned');
340
+ await wechaty.stop();
341
+ });
186
342
  test('ProtectedProperties', async (t) => {
187
343
  const noOneLeft = true;
188
344
  t.ok(noOneLeft, 'should match Wechaty properties for every protected property');