feat(captain): align task payload persistence
This commit is contained in:
@@ -53,6 +53,47 @@ func TestCopilotMessageRepo_Create(t *testing.T) {
|
||||
assert.Equal(t, model.CopilotMessageTypeUser, msg.MessageType)
|
||||
}
|
||||
|
||||
func TestCopilotMessageRepo_Create_AllowsChatwootMessageKeys(t *testing.T) {
|
||||
db := setupTestDB(t, &model.CopilotThread{}, &model.CopilotMessage{})
|
||||
repo := NewCopilotMessageRepo(db)
|
||||
thread := createTestCopilotThread(t, db, 1, 1, "Tool Thread")
|
||||
message, _ := json.Marshal(map[string]interface{}{
|
||||
"content": "Looking up docs",
|
||||
"reasoning": "Need product data",
|
||||
"function_name": "search_documentation",
|
||||
"reply_suggestion": "Try this reply",
|
||||
})
|
||||
|
||||
err := repo.Create(context.Background(), &model.CopilotMessage{
|
||||
AccountID: 1,
|
||||
CopilotThreadID: thread.ID,
|
||||
MessageType: model.CopilotMessageTypeAssistant,
|
||||
Message: message,
|
||||
})
|
||||
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestCopilotMessageRepo_Create_RejectsUnknownMessageKeys(t *testing.T) {
|
||||
db := setupTestDB(t, &model.CopilotThread{}, &model.CopilotMessage{})
|
||||
repo := NewCopilotMessageRepo(db)
|
||||
thread := createTestCopilotThread(t, db, 1, 1, "Bad Tool Thread")
|
||||
message, _ := json.Marshal(map[string]interface{}{
|
||||
"content": "hello",
|
||||
"unknown": "bad",
|
||||
})
|
||||
|
||||
err := repo.Create(context.Background(), &model.CopilotMessage{
|
||||
AccountID: 1,
|
||||
CopilotThreadID: thread.ID,
|
||||
MessageType: model.CopilotMessageTypeAssistant,
|
||||
Message: message,
|
||||
})
|
||||
|
||||
require.Error(t, err)
|
||||
assert.Contains(t, err.Error(), "invalid attribute: unknown")
|
||||
}
|
||||
|
||||
// --- 2. GetByID ---
|
||||
func TestCopilotMessageRepo_GetByID(t *testing.T) {
|
||||
db := setupTestDB(t, &model.CopilotThread{}, &model.CopilotMessage{})
|
||||
@@ -181,4 +222,4 @@ func TestCopilotMessageRepo_DeleteByThread(t *testing.T) {
|
||||
require.NoError(t, errAfter)
|
||||
assert.Equal(t, int64(0), countAfter)
|
||||
assert.Len(t, msgsAfter, 0)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user