From 4d1a69212e27eabc1ca9350e990e2674641af428 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Tue, 26 May 2026 15:37:09 -0300 Subject: [PATCH 1/2] fix: adjust new value function to keep immutability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- .../additional-input/meta-field-values.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/components/mui/formik-inputs/additional-input/meta-field-values.js b/src/components/mui/formik-inputs/additional-input/meta-field-values.js index de179930..67fb685a 100644 --- a/src/components/mui/formik-inputs/additional-input/meta-field-values.js +++ b/src/components/mui/formik-inputs/additional-input/meta-field-values.js @@ -44,12 +44,11 @@ const MetaFieldValues = ({ }; const handleAddValue = () => { - const newFields = [...metaFields]; - newFields[fieldIndex].values.push({ - value: "", - name: "", - is_default: false - }); + const newFields = metaFields.map((f, i) => + i === fieldIndex + ? { ...f, values: [...f.values, { value: "", name: "", is_default: false }] } + : f + ); setFieldValue(baseName, newFields); }; From fb421ce9ece07044fc392bae6a0d9f4c44349118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Castillo?= Date: Tue, 26 May 2026 18:15:54 -0300 Subject: [PATCH 2/2] fix: add unit test to check immutability of new fields MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tomás Castillo --- .../__tests__/additional-input-list.test.js | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src/components/mui/__tests__/additional-input-list.test.js b/src/components/mui/__tests__/additional-input-list.test.js index 42a421fd..0db6d195 100644 --- a/src/components/mui/__tests__/additional-input-list.test.js +++ b/src/components/mui/__tests__/additional-input-list.test.js @@ -149,6 +149,47 @@ describe("AdditionalInputList", () => { expect(screen.getByTestId("field-count")).toHaveTextContent("2"); }); }); + + test("new meta field starts with empty values when an existing field already has values", async () => { + let capturedFields = null; + + const TestWrapper = () => { + const { values } = useFormikContext(); + capturedFields = values.meta_fields; + return ; + }; + + render( + +
+ + +
+ ); + + const addButton = screen.getByTestId("add-btn-0"); + await userEvent.click(addButton); + + await waitFor(() => { + expect(capturedFields).toHaveLength(2); + expect(capturedFields[1].values).toEqual([]); + }); + }); }); describe("handleRemove", () => {