From d41421a9b5597ebfd8acd2936acdd77024f1183b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Po=C5=9Bpiech?= Date: Tue, 18 Jun 2024 10:37:25 +0200 Subject: [PATCH 1/2] removed initial value from enum type --- packages/uniforms-bridge-zod/src/ZodBridge.ts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/uniforms-bridge-zod/src/ZodBridge.ts b/packages/uniforms-bridge-zod/src/ZodBridge.ts index eb0f45072..ec3da0af0 100644 --- a/packages/uniforms-bridge-zod/src/ZodBridge.ts +++ b/packages/uniforms-bridge-zod/src/ZodBridge.ts @@ -152,10 +152,6 @@ export default class ZodBridge extends Bridge { return field._def.defaultValue(); } - if (field instanceof ZodEnum) { - return field.options[0]; - } - if (field instanceof ZodNativeEnum) { const values = Object.values(field.enum as Record); return values.find(isNativeEnumValue) ?? values[0]; From e90a4dac5722990246b95107884726c1f89da656 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Piotr=20Po=C5=9Bpiech?= <37746259+piotrpospiech@users.noreply.github.com> Date: Wed, 23 Oct 2024 15:04:55 +0200 Subject: [PATCH 2/2] updated tests --- packages/uniforms-bridge-zod/__tests__/ZodBridge.ts | 2 +- packages/uniforms-mui/__tests__/SelectField.tsx | 4 ++-- packages/uniforms/__suites__/RadioField.tsx | 5 +++-- packages/uniforms/__suites__/SelectField.tsx | 10 +++++----- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/uniforms-bridge-zod/__tests__/ZodBridge.ts b/packages/uniforms-bridge-zod/__tests__/ZodBridge.ts index b874f679b..ae11c541d 100644 --- a/packages/uniforms-bridge-zod/__tests__/ZodBridge.ts +++ b/packages/uniforms-bridge-zod/__tests__/ZodBridge.ts @@ -278,7 +278,7 @@ describe('ZodBridge', () => { it('works with enum (array)', () => { const schema = object({ a: enum_(['x', 'y', 'z']) }); const bridge = new ZodBridge({ schema }); - expect(bridge.getInitialValue('a')).toEqual('x'); + expect(bridge.getInitialValue('a')).toEqual(undefined); }); it('works with enum (native, numbers)', () => { diff --git a/packages/uniforms-mui/__tests__/SelectField.tsx b/packages/uniforms-mui/__tests__/SelectField.tsx index 8cb3372ab..4cc201ad6 100644 --- a/packages/uniforms-mui/__tests__/SelectField.tsx +++ b/packages/uniforms-mui/__tests__/SelectField.tsx @@ -76,7 +76,7 @@ test(' - renders a Select with correct value (default)', () => { schema: z.object({ x: z.enum(['a', 'b']) }), }); - expect(screen.getByText('a')).toBeInTheDocument(); + expect(screen.queryByText('a')).not.toBeInTheDocument(); expect(screen.queryByText('b')).not.toBeInTheDocument(); }); @@ -232,7 +232,7 @@ test(' - renders a set of Radio buttons with correct val schema: z.object({ x: z.enum(['a', 'b']) }), }); - expect(screen.getByLabelText('a')).toBeChecked(); + expect(screen.getByLabelText('a')).not.toBeChecked(); expect(screen.getByLabelText('b')).not.toBeChecked(); }); diff --git a/packages/uniforms/__suites__/RadioField.tsx b/packages/uniforms/__suites__/RadioField.tsx index b266eaa5c..2a3fafbae 100644 --- a/packages/uniforms/__suites__/RadioField.tsx +++ b/packages/uniforms/__suites__/RadioField.tsx @@ -116,7 +116,7 @@ export function testRadioField( schema: z.object({ x: z.enum(['a', 'b']) }), }); - expect(screen.getAllByRole('radio')[0]).toHaveAttribute('checked'); + expect(screen.getAllByRole('radio')[0]).not.toHaveAttribute('checked'); expect(screen.getAllByRole('radio')[1]).not.toHaveAttribute('checked'); }); @@ -161,8 +161,9 @@ export function testRadioField( onChange, }); await userEvent.click(screen.getByRole('radio', { name: 'a' })); + await userEvent.click(screen.getByRole('radio', { name: 'a' })); - expect(onChange).not.toHaveBeenCalled(); + expect(onChange).toHaveBeenCalledTimes(1); }); test(' - renders a label', () => { diff --git a/packages/uniforms/__suites__/SelectField.tsx b/packages/uniforms/__suites__/SelectField.tsx index de5220189..297b804ba 100644 --- a/packages/uniforms/__suites__/SelectField.tsx +++ b/packages/uniforms/__suites__/SelectField.tsx @@ -29,7 +29,7 @@ export function testSelectField( element: , schema: z.object({ x: z.enum(['a', 'b']) }), }); - expect(screen.getByText('y')).toBeInTheDocument(); + expect(screen.getByLabelText(/y\*?/)).toBeInTheDocument(); }); skipTestIf(isTheme(['mui', 'antd']))( @@ -228,7 +228,7 @@ export function testSelectField( element: , schema: z.object({ x: z.enum(['a', 'b']) }), }); - expect(screen.getByText('y')).toBeInTheDocument(); + expect(screen.queryByPlaceholderText('y')).not.toBeInTheDocument(); }); skipTestIf(isTheme(['antd', 'mui']))( @@ -251,10 +251,10 @@ export function testSelectField( }); const select = screen.getByRole('combobox'); if (options?.theme === 'antd') { - expect(screen.getByText('a')).toBeInTheDocument(); + expect(screen.queryByText('a')).not.toBeInTheDocument(); expect(screen.queryByText('b')).not.toBeInTheDocument(); } else { - expect(select).toHaveValue('a'); + expect(select).not.toHaveValue(); } }, ); @@ -522,7 +522,7 @@ export function testSelectField( const checkboxes = screen .getAllByRole(/checkbox|radio/) .filter(element => element instanceof HTMLInputElement); - expect(checkboxes?.[0]).toBeChecked(); + expect(checkboxes?.[0]).not.toBeChecked(); expect(checkboxes?.[1]).not.toBeChecked(); });