MCPcopy
hub / github.com/yujiosaka/headless-chrome-crawler / testSuite

Method testSuite

test/priority-queue/helper.js:16–75  ·  view source on GitHub ↗
(testContext)

Source from the content-addressed store, hash-verified

14 }
15
16 static testSuite(testContext) {
17 test('pulls without argument', async () => {
18 testContext.queue.push(0);
19 await testContext.queue.onIdle();
20 expect(testContext.onPull).toHaveBeenCalledTimes(1);
21 });
22
23 test('pulls with a number', async () => {
24 testContext.queue.push(1, 0);
25 await testContext.queue.onIdle();
26 expect(testContext.onPull).toHaveBeenCalledTimes(1);
27 expect(testContext.onPull).toHaveBeenCalledWith(1);
28 });
29
30 test('pulls with a string', async () => {
31 testContext.queue.push('http://example.com/', 0);
32 await testContext.queue.onIdle();
33 expect(testContext.onPull).toHaveBeenCalledTimes(1);
34 expect(testContext.onPull).toHaveBeenCalledWith('http://example.com/');
35 });
36
37 test('pulls with an object', async () => {
38 testContext.queue.push({ url: 'http://example.com' }, 0);
39 await testContext.queue.onIdle();
40 expect(testContext.onPull).toHaveBeenCalledTimes(1);
41 expect(testContext.onPull).toHaveBeenCalledWith({ url: 'http://example.com' });
42 });
43
44 test('pulls with multiple arguments', async () => {
45 testContext.queue.push({ url: 'http://example.com/' }, 1, 0);
46 await testContext.queue.onIdle();
47 expect(testContext.onPull).toHaveBeenCalledTimes(1);
48 expect(testContext.onPull).toHaveBeenCalledWith({ url: 'http://example.com/' }, 1);
49 });
50
51 test('obeys priority order', async () => {
52 testContext.queue.push({ url: 'http://example.com/' }, 1);
53 testContext.queue.push({ url: 'http://example.net/' }, 2);
54 await testContext.queue.onIdle();
55 expect(testContext.onPull).toHaveBeenCalledTimes(2);
56 expect(testContext.onPull.mock.calls[0][0]).toEqual({ url: 'http://example.net/' });
57 expect(testContext.onPull.mock.calls[1][0]).toEqual({ url: 'http://example.com/' });
58 });
59
60 test('pauses and resumes', async () => {
61 testContext.queue.push({ url: 'http://example.com/' }, 1, 0);
62 await Promise.all([
63 testContext.queue.onIdle(),
64 testContext.queue.pause(),
65 ]);
66 expect(testContext.onPull).toHaveBeenCalledTimes(0);
67 expect(testContext.queue.isPaused()).toBe(true);
68 expect(testContext.queue.pending()).toBe(0);
69 const size = await testContext.queue.size();
70 expect(size).toBe(1);
71 testContext.queue.resume();
72 await testContext.queue.onIdle();
73 expect(testContext.onPull).toHaveBeenCalledTimes(1);

Callers

nothing calls this directly

Calls 7

pushMethod · 0.80
pendingMethod · 0.80
onIdleMethod · 0.45
pauseMethod · 0.45
isPausedMethod · 0.45
sizeMethod · 0.45
resumeMethod · 0.45

Tested by

no test coverage detected