import { describe, expect, it, vi } from 'vitest'; import { createConfigBackedSubredditPollingControl } from '../src/services/subreddit-polling-control.js'; import { getTestConfig } from './testUtils.js'; import { createMockLogger } from './mockLogger.js'; describe('config-backed subreddit polling control', () => { it('disables and persists only the matched subreddit', () => { const config = getTestConfig({ reddit: { subreddits: [{ name: 'gone', type: 'image' }, { name: 'active', type: 'chat' }] } }); const store = { load: vi.fn(), save: vi.fn() }; const control = createConfigBackedSubredditPollingControl(config, store, createMockLogger()); control.disableUnavailableSubreddit('GONE'); expect(config.reddit.subreddits).toEqual([ expect.objectContaining({ name: 'gone', enabled: false }), expect.objectContaining({ name: 'active' }), ]); expect(store.save).toHaveBeenCalledWith(config); expect(control.isSubredditEnabled('gone')).toBe(false); }); });