From 692153e8d18668f16ec24ba07859f674352a576e Mon Sep 17 00:00:00 2001 From: RYB-404 Date: Thu, 21 May 2026 00:55:58 +0700 Subject: [PATCH] test: cover signed-in post bounty start flow --- .../postBounty/__tests__/PostBounty.spec.tsx | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/people/widgetViews/postBounty/__tests__/PostBounty.spec.tsx b/src/people/widgetViews/postBounty/__tests__/PostBounty.spec.tsx index e2d3916ab..3cc7cb176 100644 --- a/src/people/widgetViews/postBounty/__tests__/PostBounty.spec.tsx +++ b/src/people/widgetViews/postBounty/__tests__/PostBounty.spec.tsx @@ -6,12 +6,18 @@ import React from 'react'; import { setupStore } from '../../../../__test__/__mockData__/setupStore'; import { user } from '../../../../__test__/__mockData__/user'; import { mockUsehistory } from '../../../../__test__/__mockFn__/useHistory'; +import { PostBounty } from '../PostBounty'; import { PostModal } from '../PostModal'; beforeAll(() => { nock.disableNetConnect(); setupStore(); mockUsehistory(); + nock(user.url).persist().get('/feature-flags').reply(200, []); + nock(user.url).persist().get('/workspaces/user/dropdown/1').reply(200, []); + nock(user.url).persist().get(/\/features.*/).reply(200, []); + nock(user.url).persist().get(/\/people.*/).reply(200, []); + nock(user.url).persist().get(/\/snippet\/workspace.*/).reply(200, []); }); // eslint-disable-next-line @typescript-eslint/no-empty-function @@ -24,6 +30,33 @@ describe('Post bounty', () => { nock(user.url).get('/person/id/1').reply(200, { user }); nock(user.url).get('/ask').reply(200, {}); + test('signed in user can open, cancel, and start the post bounty flow', async () => { + render(); + + const postBountyButton = await screen.findByRole('button', { name: /Post a Bounty/i }); + expect(postBountyButton).toBeInTheDocument(); + + fireEvent.click(postBountyButton); + + expect(screen.getByRole('alertdialog')).toBeInTheDocument(); + expect(screen.getByText('Choose Bounty type')).toBeInTheDocument(); + expect(screen.getByText('Freelance Job Request')).toBeInTheDocument(); + expect(screen.getByText('Choose the right developer')).toBeInTheDocument(); + expect(screen.getByText('Live Help')).toBeInTheDocument(); + expect(screen.getByText('Get instant help for your task')).toBeInTheDocument(); + expect(screen.getByText('Coming soon')).toBeInTheDocument(); + + fireEvent.click(screen.getByTestId('close-btn')); + await waitFor(() => { + expect(screen.queryByRole('alertdialog')).not.toBeInTheDocument(); + }); + + fireEvent.click(postBountyButton); + fireEvent.click(screen.getByText('Start')); + + expect(await screen.findByText('Basic info')).toBeInTheDocument(); + }); + test('display error message if bounty fails to create', () => { const closeHandler = jest.fn(); const formData = {