Enforce commenter gender targeting
This commit is contained in:
1 parent
8523873831
commit
12e2dc56f1
5 files changed
+38
-6
No files matched your search
+31
-3
@@ -727,7 +727,7 @@ describe('MonitorService', () => {
|
||||
expect(screener.screenCommentReactions).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('fails closed on low-confidence or non-qualifying reactions', async () => {
|
||||
it('fails closed on low-confidence, non-qualifying, or non-targeted reactions', async () => {
|
||||
const source = {
|
||||
id: 'post1', name: 't3_post1', subreddit: 'scene', author: 'poster', title: 'A scene',
|
||||
url: 'https://example.com/scene.jpg', permalink: '/r/scene/comments/post1/', thumbnail: '',
|
||||
@@ -736,11 +736,13 @@ describe('MonitorService', () => {
|
||||
const redditApi = createMockRedditApi([source]);
|
||||
redditApi.getBrowsingComments = vi.fn().mockResolvedValue([
|
||||
{ fullname: 't1_low', author: 'a', text: 'I want this as well', removed: false, createdAt: 101_000, permalink: '/low' },
|
||||
{ fullname: 't1_male', author: 'b', text: 'As a man I want this', removed: false, createdAt: 102_000, permalink: '/male' },
|
||||
{ fullname: 't1_male', author: 'b', text: 'I want to put my bulge there', removed: false, createdAt: 102_000, permalink: '/male' },
|
||||
{ fullname: 't1_unknown', author: 'c', text: 'I would love this', removed: false, createdAt: 103_000, permalink: '/unknown' },
|
||||
]);
|
||||
const screener = { screenCommentReactions: vi.fn().mockResolvedValue([
|
||||
{ id: 't1_low', qualifies: true, expressedGender: 'female', confidence: 0.79, evidence: '' },
|
||||
{ id: 't1_male', qualifies: false, expressedGender: 'male', confidence: 0.99, evidence: '' },
|
||||
{ id: 't1_male', qualifies: true, expressedGender: 'male', confidence: 0.99, evidence: 'self-referential male anatomy' },
|
||||
{ id: 't1_unknown', qualifies: true, expressedGender: 'unknown', confidence: 0.95, evidence: 'no gender perspective' },
|
||||
]) };
|
||||
const config = getTestConfig({ reddit: {
|
||||
subreddits: [{ name: 'scene', type: 'image', targetingMode: 'comment-author' }],
|
||||
@@ -752,5 +754,31 @@ describe('MonitorService', () => {
|
||||
|
||||
await expect(monitor.fetchCandidates(config.reddit.subreddits[0])).resolves.toEqual([]);
|
||||
});
|
||||
|
||||
it('allows an expressed gender when it is explicitly targeted', async () => {
|
||||
const source = {
|
||||
id: 'post1', name: 't3_post1', subreddit: 'scene', author: 'poster', title: 'A scene',
|
||||
url: 'https://example.com/scene.jpg', permalink: '/r/scene/comments/post1/', thumbnail: '',
|
||||
is_self: false, created_utc: 100, over_18: true, spoiler: false,
|
||||
} as RedditPost;
|
||||
const redditApi = createMockRedditApi([source]);
|
||||
redditApi.getBrowsingComments = vi.fn().mockResolvedValue([
|
||||
{ fullname: 't1_unknown', author: 'a', text: 'I would love this', removed: false, createdAt: 101_000, permalink: '/unknown' },
|
||||
]);
|
||||
const screener = { screenCommentReactions: vi.fn().mockResolvedValue([
|
||||
{ id: 't1_unknown', qualifies: true, expressedGender: 'unknown', confidence: 0.95, evidence: '' },
|
||||
]) };
|
||||
const config = getTestConfig({ reddit: {
|
||||
subreddits: [{ name: 'scene', type: 'image', targetingMode: 'comment-author' }],
|
||||
targetGenders: ['unknown'],
|
||||
} });
|
||||
monitor = new MonitorService(
|
||||
redditApi, createMockPostsRepo(), createMockMessagesRepo(), config, logger, 0, undefined, screener,
|
||||
);
|
||||
|
||||
const candidates = await monitor.fetchCandidates(config.reddit.subreddits[0]);
|
||||
|
||||
expect(candidates.map((candidate) => candidate.id)).toEqual(['t1_unknown']);
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user