TEST-FE-PR-001: adapt proposal/essential tests for current UI

This commit is contained in:
zhi
2026-04-05 20:48:47 +00:00
parent 83c9cd8fb7
commit 38ebd2bbd1

View File

@@ -356,25 +356,19 @@ describe('ProposalDetailPage', () => {
it('opens accept modal with milestone selector', async () => {
render(<ProposalDetailPage />)
await waitFor(() => {
expect(screen.getByText('Accept')).toBeInTheDocument()
})
await userEvent.click(screen.getByText('Accept'))
const acceptButton = await screen.findByRole('button', { name: /accept/i })
await userEvent.click(acceptButton)
expect(screen.getByRole('heading', { name: 'Accept Proposal' })).toBeInTheDocument()
expect(screen.getByText(/Select an.*open.*milestone/i)).toBeInTheDocument()
expect(screen.getByText(/milestone to generate story tasks/i)).toBeInTheDocument()
expect(screen.getByRole('combobox')).toBeInTheDocument()
})
it('disables confirm button without milestone selection', async () => {
render(<ProposalDetailPage />)
await waitFor(() => {
expect(screen.getByText('Accept')).toBeInTheDocument()
})
await userEvent.click(screen.getByText('Accept'))
const acceptButton = await screen.findByRole('button', { name: /accept/i })
await userEvent.click(acceptButton)
const confirmButton = screen.getByRole('button', { name: 'Confirm Accept' })
expect(confirmButton).toBeDisabled()
@@ -383,11 +377,8 @@ describe('ProposalDetailPage', () => {
it('enables confirm button after milestone selection', async () => {
render(<ProposalDetailPage />)
await waitFor(() => {
expect(screen.getByText('Accept')).toBeInTheDocument()
})
await userEvent.click(screen.getByText('Accept'))
const acceptButton = await screen.findByRole('button', { name: /accept/i })
await userEvent.click(acceptButton)
const select = screen.getByRole('combobox')
fireEvent.change(select, { target: { value: '1' } })
@@ -399,11 +390,8 @@ describe('ProposalDetailPage', () => {
it('calls accept API with selected milestone', async () => {
render(<ProposalDetailPage />)
await waitFor(() => {
expect(screen.getByText('Accept')).toBeInTheDocument()
})
await userEvent.click(screen.getByText('Accept'))
const acceptButton = await screen.findByRole('button', { name: /accept/i })
await userEvent.click(acceptButton)
const select = screen.getByRole('combobox')
fireEvent.change(select, { target: { value: '1' } })
@@ -422,11 +410,8 @@ describe('ProposalDetailPage', () => {
setupApi({ milestones: [] })
render(<ProposalDetailPage />)
await waitFor(() => {
expect(screen.getByText('Accept')).toBeInTheDocument()
})
await userEvent.click(screen.getByText('Accept'))
const acceptButton = await screen.findByRole('button', { name: /accept/i })
await userEvent.click(acceptButton)
expect(screen.getByText('No open milestones available.')).toBeInTheDocument()
})
@@ -466,10 +451,7 @@ describe('ProposalDetailPage', () => {
render(<ProposalDetailPage />)
await waitFor(() => {
expect(screen.getByText('accepted')).toBeInTheDocument()
})
await screen.findByText('Feature Essential')
expect(screen.queryByText('+ New Essential')).not.toBeInTheDocument()
})
@@ -487,11 +469,7 @@ describe('ProposalDetailPage', () => {
expect(screen.getByText('Feature Essential')).toBeInTheDocument()
})
// Edit and Delete buttons should not be visible
const editButtons = screen.queryAllByRole('button', { name: 'Edit' })
const deleteButtons = screen.queryAllByRole('button', { name: 'Delete' })
// Only the main proposal Edit button might exist, but not essential edit buttons
expect(deleteButtons.length).toBe(0)
})
@@ -505,10 +483,7 @@ describe('ProposalDetailPage', () => {
render(<ProposalDetailPage />)
await waitFor(() => {
expect(screen.getByText('rejected')).toBeInTheDocument()
})
await screen.findByRole('button', { name: /reopen/i })
expect(screen.queryByText('+ New Essential')).not.toBeInTheDocument()
})
})
@@ -537,11 +512,8 @@ describe('ProposalDetailPage', () => {
render(<ProposalDetailPage />)
await waitFor(() => {
expect(screen.getByText('Accept')).toBeInTheDocument()
})
await userEvent.click(screen.getByText('Accept'))
const acceptButton = await screen.findByRole('button', { name: /accept/i })
await userEvent.click(acceptButton)
fireEvent.change(screen.getByRole('combobox'), { target: { value: '1' } })
await userEvent.click(screen.getByRole('button', { name: 'Confirm Accept' }))