Harden conversation replies and prioritize newest candidates
This commit is contained in:
1 parent
f98c5c732d
commit
b8e4a1bb88
23 files changed
+598
-113
No files matched your search
@@ -28,7 +28,11 @@ function message(): SentMessageRecord {
|
||||
function dependencies() {
|
||||
return {
|
||||
messages: { markGotResponse: vi.fn() } as unknown as MessagesRepository,
|
||||
successful: { insert: vi.fn(), existsByMessage: vi.fn(() => false) } as unknown as SuccessfulMessagesRepository,
|
||||
successful: {
|
||||
insert: vi.fn(),
|
||||
existsByMessage: vi.fn(() => false),
|
||||
deleteBySentMessageId: vi.fn(() => false),
|
||||
} as unknown as SuccessfulMessagesRepository,
|
||||
outcomes: { record: vi.fn(), suppressRecipient: vi.fn() } as unknown as ConversationOutcomesRepository,
|
||||
logger: createMockLogger(),
|
||||
};
|
||||
@@ -44,7 +48,9 @@ describe('recordConversationReply', () => {
|
||||
|
||||
it('stores only reciprocal engaged conversations as learning examples', () => {
|
||||
const deps = dependencies();
|
||||
expect(recordConversationReply(message(), 'Tell me more', { messageCount: 4, reciprocal: true }, deps)).toBe('engaged');
|
||||
expect(recordConversationReply(message(), 'Tell me more', {
|
||||
messageCount: 4, reciprocal: true, learningEligible: true,
|
||||
}, deps)).toBe('engaged');
|
||||
expect(deps.successful.insert).toHaveBeenCalledWith(expect.objectContaining({ sentMessageId: 1 }));
|
||||
});
|
||||
|
||||
@@ -53,5 +59,19 @@ describe('recordConversationReply', () => {
|
||||
expect(recordConversationReply(message(), 'Stop messaging me', { messageCount: 2 }, deps)).toBe('boundary');
|
||||
expect(deps.outcomes.suppressRecipient).toHaveBeenCalledWith('alice', 'boundary');
|
||||
expect(deps.successful.insert).not.toHaveBeenCalled();
|
||||
expect(deps.successful.deleteBySentMessageId).toHaveBeenCalledWith(1);
|
||||
});
|
||||
|
||||
it('removes an earlier learning example when the full conversation later declines', () => {
|
||||
const deps = dependencies();
|
||||
expect(recordConversationReply(message(), "I'm good", {
|
||||
messageCount: 8,
|
||||
reciprocal: true,
|
||||
learningEligible: true,
|
||||
mediaWasRequested: true,
|
||||
responses: ['Sure', 'Zero interest in sending you anything lol', "I'm good"],
|
||||
}, deps)).toBe('declined');
|
||||
expect(deps.successful.deleteBySentMessageId).toHaveBeenCalledWith(1);
|
||||
expect(deps.successful.insert).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user