import React from 'react'; import { describe, it, expect, vi } from 'vitest'; import { screen } from '@testing-library/react'; import { render } from '../utils'; import { AdditionalSection } from '../../components/spool-form/AdditionalSection'; import { defaultFormData } from '../../components/spool-form/types'; vi.mock('react-i18next', () => ({ useTranslation: () => ({ t: (key: string) => key, }), })); const baseProps = { formData: defaultFormData, updateField: vi.fn(), spoolCatalog: [], currencySymbol: '$', availableCategories: [], globalLowStockThreshold: 20, }; describe('AdditionalSection', () => { it('renders SpoolWeightPicker when spoolmanMode is false', () => { render(); // SpoolWeightPicker renders the 'inventory.coreWeight' label expect(screen.getByText('inventory.coreWeight')).toBeTruthy(); // Info notice must NOT be present expect(screen.queryByText('inventory.spoolWeightManagedBySpoolman')).toBeNull(); }); it('hides SpoolWeightPicker and shows info notice when spoolmanMode is true', () => { render(); // Info notice must appear expect(screen.getByText('inventory.spoolWeightManagedBySpoolman')).toBeTruthy(); // SpoolWeightPicker must NOT be rendered expect(screen.queryByText('inventory.coreWeight')).toBeNull(); }); it('defaults to spoolmanMode=false when prop is omitted', () => { render(); // SpoolWeightPicker present by default expect(screen.getByText('inventory.coreWeight')).toBeTruthy(); }); });