Files
RedditBot/tests/subreddit-polling-control.test.ts

22 lines
1009 B
TypeScript

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);
});
});