Soy nuevo en bromas. Estoy tratando de cambiar el estado del enlace en broma. Pero no pude encontrar ningún documento para implementar lo mismo. A continuación se muestra mi estado del enlace en la pantalla de inicio de sesión.
const [form, setForm] = React.useState({ email: "", phoneNumber: "", password: "", signUpType: SignUpType.PHONE_NUMBER, }); Quiero cambiar el estado de signUpType a EMAIL durante la prueba. ¿Cómo se puede lograr esto? Hice lo siguiente
it("Email validation", () => { const email = "sample.s@abc.com"; // Stub the initial state const stubInitialState = [{ signUpTyp: "EMAIL" }]; React.useState = jest.fn().mockReturnValue([stubInitialState, {}]); const tree = mount( <Provider store={configureStore}> <SignIn /> </Provider> ); expect(tree.find('CustomTextInput[attrName="email"]').prop("value")).toBe( "" ); expect(email).toMatch(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/); }); Pero el código anterior no funciona para mí. Por favor, ayúdenme a encontrar una solución para esto. Además, TextInput será email o número de phoneNumebr según la selección del usuario.
Puede intentar usar la API jest.spyOn para simular el método React.useState :
const stubInitialState = [{ signUpTyp: "EMAIL" }]; const mockedSetform = jest.fn(); jest.spyOn(React, 'useState').mockReturnValue([stubInitialState, mockedSetform]);