TEST-FE-PR-001: adapt proposal/essential tests for current UI
This commit is contained in:
@@ -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' }))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user