From 38ebd2bbd116aed8eca6af1c1a3a57da7fcb72e3 Mon Sep 17 00:00:00 2001 From: zhi Date: Sun, 5 Apr 2026 20:48:47 +0000 Subject: [PATCH] TEST-FE-PR-001: adapt proposal/essential tests for current UI --- src/test/proposal-essential.test.tsx | 58 +++++++--------------------- 1 file changed, 15 insertions(+), 43 deletions(-) diff --git a/src/test/proposal-essential.test.tsx b/src/test/proposal-essential.test.tsx index 0f25629..802c9f2 100644 --- a/src/test/proposal-essential.test.tsx +++ b/src/test/proposal-essential.test.tsx @@ -356,25 +356,19 @@ describe('ProposalDetailPage', () => { it('opens accept modal with milestone selector', async () => { render() - 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() - 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() - 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() - 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() - 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() - 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() - 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() - 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' }))