fix(frontend): keep entity and message deletes in sync
This commit is contained in:
@@ -294,6 +294,45 @@ describe('EditTaskPage', () => {
|
||||
})
|
||||
})
|
||||
|
||||
it('should_removeOnlyDeletedGeneratedMessage_when_deleteSucceedsWithoutRefetch', async () => {
|
||||
persistedHistory = [
|
||||
{
|
||||
id: 'message-2',
|
||||
taskId: 'task-1',
|
||||
label: 'Message #2',
|
||||
content: 'SUBJECT: Second\nBODY:\nSecond output',
|
||||
createdAt: '2026-03-27T12:10:00Z',
|
||||
},
|
||||
{
|
||||
id: 'message-1',
|
||||
taskId: 'task-1',
|
||||
label: 'Message #1',
|
||||
content: 'SUBJECT: First\nBODY:\nFirst output',
|
||||
createdAt: '2026-03-27T12:00:00Z',
|
||||
},
|
||||
]
|
||||
vi.mocked(tasksApi.getTaskGeneratedMessages).mockResolvedValue(persistedHistory)
|
||||
vi.mocked(tasksApi.deleteTaskGeneratedMessage).mockResolvedValue(undefined)
|
||||
|
||||
renderPage()
|
||||
|
||||
const secondMessageHistoryItem = await screen.findByRole('button', { name: /^message #2$/i })
|
||||
expect(await screen.findByRole('button', { name: /^message #1$/i })).toBeInTheDocument()
|
||||
|
||||
fireEvent.click(
|
||||
screen.getByRole('button', {
|
||||
name: /delete message #1/i,
|
||||
})
|
||||
)
|
||||
|
||||
await waitFor(() => {
|
||||
expect(tasksApi.deleteTaskGeneratedMessage).toHaveBeenCalledWith('task-1', 'message-1')
|
||||
expect(screen.queryByRole('button', { name: /^message #1$/i })).not.toBeInTheDocument()
|
||||
expect(secondMessageHistoryItem).toBeInTheDocument()
|
||||
expect(screen.getByText(/Second output/i)).toBeInTheDocument()
|
||||
})
|
||||
})
|
||||
|
||||
it('should_loadPersistedGeneratedMessageHistory_when_pageLoads', async () => {
|
||||
persistedHistory = [
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user