From 84da38e187abb2cf77a070d6bb768488eaddac07 Mon Sep 17 00:00:00 2001
From: Johannes Klein <17345891+jtklein@users.noreply.github.com>
Date: Tue, 7 Jul 2026 14:37:39 +0200
Subject: [PATCH] Create NumericFieldInput.test.js
---
.../AddToProjects/NumericFieldInput.test.js | 40 +++++++++++++++++++
1 file changed, 40 insertions(+)
create mode 100644 tests/unit/components/AddToProjects/NumericFieldInput.test.js
diff --git a/tests/unit/components/AddToProjects/NumericFieldInput.test.js b/tests/unit/components/AddToProjects/NumericFieldInput.test.js
new file mode 100644
index 000000000..a3cd19493
--- /dev/null
+++ b/tests/unit/components/AddToProjects/NumericFieldInput.test.js
@@ -0,0 +1,40 @@
+import { screen, userEvent } from "@testing-library/react-native";
+import NumericFieldInput from "components/AddToProjects/FieldInputs/NumericFieldInput";
+import useObservationFieldValue from "components/AddToProjects/hooks/useObservationFieldValue";
+import React from "react";
+import { renderComponent } from "tests/helpers/render";
+
+jest.mock( "components/AddToProjects/hooks/useObservationFieldValue" );
+
+const actor = userEvent.setup( );
+const mockSetValue = jest.fn( );
+
+beforeEach( ( ) => {
+ mockSetValue.mockClear( );
+ useObservationFieldValue.mockImplementation( () => ( {
+ value: "",
+ setValue: mockSetValue,
+ } ) );
+} );
+
+describe( "NumericFieldInput", ( ) => {
+ it( "reads the OFV value from the hook for the given obsFieldId", ( ) => {
+ renderComponent( );
+
+ expect( useObservationFieldValue ).toHaveBeenCalledWith( 100 );
+ } );
+
+ it( "renders with placeholder", ( ) => {
+ renderComponent( );
+
+ expect( screen.getByPlaceholderText( "Enter a number" ) ).toBeVisible( );
+ } );
+
+ it( "calls setValue with the typed number", async ( ) => {
+ renderComponent( );
+
+ await actor.type( screen.getByPlaceholderText( "Enter a number" ), "3" );
+
+ expect( mockSetValue ).toHaveBeenCalledWith( "3" );
+ } );
+} );