import RequestBuilder from '@/components/domain/Client/Request/RequestBuilder.vue'; import { renderWithProviders, screen } from '@/tests/_utils/test-utils'; import { describe, expect, it, vi } from 'vitest'; vi.mock('@/components/domain/Client/Request', () => ({ RequestBuilderEndpoint: { name: 'RequestBuilderEndpoint', template: '
Endpoint
', }, RequestParameters: { name: 'RequestParameters', template: '
Parameters Panel
', }, RequestBody: { name: 'RequestBody', template: '
Body Panel
', }, RequestAuthorization: { name: 'RequestAuthorization', template: '
Authorization Panel
', }, RequestHeaders: { name: 'RequestHeaders', template: '
Headers Panel
', }, })); describe('RequestBuilder', () => { it('renders endpoint selector and body tab by default', () => { renderWithProviders(RequestBuilder); expect(screen.getByTestId('request-builder-endpoint')).toBeInTheDocument(); expect(screen.getByTestId('request-body')).toBeVisible(); }); it('switches between panels when different tabs are selected', async () => { const { user } = renderWithProviders(RequestBuilder); await user.click(screen.getByRole('tab', { name: 'Parameters' })); expect(screen.getByTestId('request-parameters')).toBeVisible(); await user.click(screen.getByRole('tab', { name: 'Authorization' })); expect(screen.getByTestId('request-authorization')).toBeVisible(); await user.click(screen.getByRole('tab', { name: 'Headers' })); expect(screen.getByTestId('request-headers')).toBeVisible(); }); });