feat(frontend): streamline task creation and preview workflows
- remove prompt and preview generation from task creation - create tasks as inactive and route directly to edit page - add generated message history UX to edit task - update entity/task views and related test coverage
This commit is contained in:
@@ -186,6 +186,59 @@ describe('EditTaskPage', () => {
|
||||
})
|
||||
})
|
||||
|
||||
it('should_renderGeneratedMessagePanels_when_pageLoads', async () => {
|
||||
renderPage()
|
||||
|
||||
await screen.findByRole('link', { name: /back to entity a/i })
|
||||
|
||||
expect(screen.getByText(/Final Prompt/i)).toBeInTheDocument()
|
||||
expect(screen.getByText(/^Generated Message$/i)).toBeInTheDocument()
|
||||
expect(screen.getByText(/^Generated Message History$/i)).toBeInTheDocument()
|
||||
expect(screen.getByText(/Generate a message and it will appear here./i)).toBeInTheDocument()
|
||||
expect(screen.getByRole('list', { name: /generated message history/i })).toBeInTheDocument()
|
||||
expect(screen.getByText(/No generated messages yet./i)).toBeInTheDocument()
|
||||
})
|
||||
|
||||
it('should_showAndManageGeneratedMessageHistory_when_multipleMessagesGenerated', async () => {
|
||||
vi.mocked(tasksApi.generateTaskPreview)
|
||||
.mockResolvedValueOnce('SUBJECT: First\nBODY:\nFirst output')
|
||||
.mockResolvedValueOnce('SUBJECT: Second\nBODY:\nSecond output')
|
||||
|
||||
renderPage()
|
||||
await screen.findByRole('link', { name: /back to entity a/i })
|
||||
|
||||
const generateButton = screen.getByRole('button', { name: /generate test message/i })
|
||||
|
||||
fireEvent.click(generateButton)
|
||||
await screen.findByText(/First output/i)
|
||||
|
||||
fireEvent.click(generateButton)
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByText(/Second output/i)).toBeInTheDocument()
|
||||
})
|
||||
|
||||
const history = screen.getByRole('list', { name: /generated message history/i })
|
||||
expect(history).toBeInTheDocument()
|
||||
|
||||
const firstMessageHistoryItem = screen.getByRole('button', { name: /^message #1$/i })
|
||||
const secondMessageHistoryItem = screen.getByRole('button', { name: /^message #2$/i })
|
||||
|
||||
fireEvent.click(firstMessageHistoryItem)
|
||||
expect(screen.getByText(/First output/i)).toBeInTheDocument()
|
||||
|
||||
fireEvent.click(
|
||||
screen.getByRole('button', {
|
||||
name: /delete message #1/i,
|
||||
})
|
||||
)
|
||||
|
||||
await waitFor(() => {
|
||||
expect(firstMessageHistoryItem).not.toBeInTheDocument()
|
||||
expect(secondMessageHistoryItem).toBeInTheDocument()
|
||||
})
|
||||
})
|
||||
|
||||
it('should_renderActivateButton_when_taskIsInactive', async () => {
|
||||
renderPage({ task: { ...mockTask, active: false } })
|
||||
|
||||
|
||||
Reference in New Issue
Block a user