diff --git a/client/src/components/Manifest/SiteSelect/SiteTypeSelect.spec.tsx b/client/src/components/Manifest/SiteSelect/SiteTypeSelect.spec.tsx index 23f131ffe..bb602836f 100644 --- a/client/src/components/Manifest/SiteSelect/SiteTypeSelect.spec.tsx +++ b/client/src/components/Manifest/SiteSelect/SiteTypeSelect.spec.tsx @@ -1,22 +1,57 @@ import { screen } from '@testing-library/react'; +import { RcraSiteType } from 'components/Manifest/manifestSchema'; import { SiteTypeSelect } from 'components/Manifest/SiteSelect/SiteTypeSelect'; import React, { useState } from 'react'; import { useForm } from 'react-hook-form'; import { renderWithProviders } from 'test-utils'; -import { createMockSite } from 'test-utils/fixtures'; import { describe, expect, test } from 'vitest'; -function TestComponent() { +function TestComponent({ siteType }: { siteType?: RcraSiteType }) { const [mockSiteType, setMockSiteType] = useState(); + const handleChange = (siteType: any) => setMockSiteType(siteType); const { control } = useForm(); // @ts-ignore - return ; + return ( + + ); } describe('SiteTypeSelect', () => { test('renders', () => { - const mySite = createMockSite(); renderWithProviders(); expect(screen.queryByTestId('siteTypeSelect')).toBeDefined(); }); + test('site options are limited when site type is Generator', () => { + renderWithProviders(); + // screen.debug(undefined, Infinity); + expect(screen.queryByRole('option', { name: /generator/i })).toBeDefined(); + expect(screen.queryByRole('option', { name: /Transporter/i })).toBeNull(); + expect(screen.queryByRole('option', { name: /Tsdf/i })).toBeNull(); + }); + test('site options are limited when site type is transporter', () => { + renderWithProviders(); + // screen.debug(undefined, Infinity); + expect(screen.queryByRole('option', { name: /generator/i })).toBeDefined(); + expect(screen.queryByRole('option', { name: /Transporter/i })).toBeDefined(); + expect(screen.queryByRole('option', { name: /Tsdf/i })).toBeNull(); + }); + test('All options are available when site Type is Tsdf', () => { + renderWithProviders(); + // screen.debug(undefined, Infinity); + expect(screen.queryByRole('option', { name: /generator/i })).toBeDefined(); + expect(screen.queryByRole('option', { name: /Transporter/i })).toBeDefined(); + expect(screen.queryByRole('option', { name: /Tsdf/i })).toBeDefined(); + }); + test('All options are available when site Type is undefined', () => { + renderWithProviders(); + // screen.debug(undefined, Infinity); + expect(screen.queryByRole('option', { name: /generator/i })).toBeDefined(); + expect(screen.queryByRole('option', { name: /Transporter/i })).toBeDefined(); + expect(screen.queryByRole('option', { name: /Tsdf/i })).toBeDefined(); + }); }); diff --git a/client/src/components/Manifest/SiteSelect/SiteTypeSelect.tsx b/client/src/components/Manifest/SiteSelect/SiteTypeSelect.tsx index f47f8485a..eea81247d 100644 --- a/client/src/components/Manifest/SiteSelect/SiteTypeSelect.tsx +++ b/client/src/components/Manifest/SiteSelect/SiteTypeSelect.tsx @@ -5,8 +5,8 @@ import { Form } from 'react-bootstrap'; import { Control, Controller } from 'react-hook-form'; interface SiteTypeSelectProps { - siteType: RcraSiteType | undefined; - value: RcraSiteType | undefined; + siteType?: RcraSiteType; + value?: RcraSiteType; handleChange: (siteType: RcraSiteType) => void; control: Control; disabled?: boolean;