feat: log subreddit screening outcomes
This commit is contained in:
1 parent
53e9a44a5c
commit
f88d4af146
2 files changed
+90
-5
No files matched your search
@@ -148,6 +148,30 @@ describe('MonitorService', () => {
|
||||
expect(postsRepo.setError).toHaveBeenCalledWith('t3_seller', 'Seller signals detected');
|
||||
});
|
||||
|
||||
it('logs a per-listing breakdown of screened and deferred posts', async () => {
|
||||
const makePost = (id: string, author: string, created_utc: number): RedditPost => ({
|
||||
id, subreddit: 'sub1', author, title: id,
|
||||
url: `http://example.com/${id}.jpg`, permalink: `/r/sub1/${id}`, thumbnail: '',
|
||||
is_self: false, created_utc, over_18: true, spoiler: false,
|
||||
});
|
||||
const seller = makePost('seller', 'seller', 4);
|
||||
const sent = makePost('sent', 'sent', 3);
|
||||
const selected = makePost('selected', 'selected', 2);
|
||||
const deferred = makePost('deferred', 'deferred', 1);
|
||||
const redditApi = createMockRedditApi([seller, sent, selected, deferred]);
|
||||
vi.mocked(redditApi.isSellerProfile).mockImplementation(async (username) => username === 'seller');
|
||||
const config = getTestConfig({ reddit: { subreddits: [{ name: 'sub1', type: 'image' }] } });
|
||||
monitor = new MonitorService(
|
||||
redditApi, createMockPostsRepo(), createMockMessagesRepo(new Set(['sent'])), config, logger, 0,
|
||||
);
|
||||
|
||||
await expect(monitor.getUnprocessedPosts()).resolves.toEqual([selected]);
|
||||
expect(logger.logs).toContainEqual(expect.objectContaining({
|
||||
level: 'info',
|
||||
message: 'r/sub1 listing: 4 fetched; 3 screened; 0 already processed; 1 already messaged; 1 seller signals; 0 missing gender tag; 0 gender not targeted; 1 eligible (selected); 0 outside recent window; 1 not evaluated after outcome',
|
||||
}));
|
||||
});
|
||||
|
||||
it('returns newest post when multiple valid posts exist', async () => {
|
||||
const post1: RedditPost = {
|
||||
id: 't3_1', subreddit: 'sub1', author: 'user1', title: 'Older',
|
||||
|
||||
Reference in new issue
Block a user