/ clis / reddit / read.test.js
read.test.js
 1  import { describe, expect, it, vi } from 'vitest';
 2  import { getRegistry } from '@jackwener/opencli/registry';
 3  import './read.js';
 4  describe('reddit read adapter', () => {
 5      const command = getRegistry().get('reddit/read');
 6      it('returns threaded rows from the browser-evaluated payload', async () => {
 7          const page = {
 8              goto: vi.fn().mockResolvedValue(undefined),
 9              evaluate: vi.fn().mockResolvedValue([
10                  { type: 'POST', author: 'alice', score: 10, text: 'Title' },
11                  { type: 'L0', author: 'bob', score: 5, text: 'Comment' },
12              ]),
13          };
14          const result = await command.func(page, { 'post-id': 'abc123', limit: 5 });
15          expect(page.goto).toHaveBeenCalledWith('https://www.reddit.com');
16          expect(result).toEqual([
17              { type: 'POST', author: 'alice', score: 10, text: 'Title' },
18              { type: 'L0', author: 'bob', score: 5, text: 'Comment' },
19          ]);
20      });
21      it('surfaces adapter-level API errors clearly', async () => {
22          const page = {
23              goto: vi.fn().mockResolvedValue(undefined),
24              evaluate: vi.fn().mockResolvedValue({ error: 'Reddit API returned HTTP 403' }),
25          };
26          await expect(command.func(page, { 'post-id': 'abc123' })).rejects.toThrow('Reddit API returned HTTP 403');
27      });
28  });