sniffing-field-resync.test.tsx 925 B

123456789101112131415161718192021
  1. import { describe, it, expect, vi } from 'vitest';
  2. import { render } from '@testing-library/react';
  3. import SniffingField from '@/lib/xray/forms/fields/SniffingField';
  4. import { SniffingSchema } from '@/schemas/primitives/sniffing';
  5. describe('SniffingField external re-sync', () => {
  6. it('reflects an external value change (e.g. an advanced JSON edit) in the friendly form', () => {
  7. const disabled = SniffingSchema.parse({ enabled: false });
  8. const enabled = SniffingSchema.parse({ enabled: true });
  9. const onChange = vi.fn();
  10. const { rerender, getByRole } = render(
  11. <SniffingField value={disabled} onChange={onChange} enableLabel="Enable" />,
  12. );
  13. expect(getByRole('switch').getAttribute('aria-checked')).toBe('false');
  14. rerender(<SniffingField value={enabled} onChange={onChange} enableLabel="Enable" />);
  15. expect(getByRole('switch').getAttribute('aria-checked')).toBe('true');
  16. });
  17. });