【发布时间】:2021-04-06 17:54:33
【问题描述】:
我需要模拟 useLogin 钩子,因为它包含引发错误的逻辑。稍后我将单独测试它。 UseLogin 返回将新用户连接到firebase的加载标志和登录函数。
import useLogin from "../../../hooks/useLogin";
export default function Login({ register, handleSubmit }) {
const [loading, login] = useLogin();
return (
<Form onSubmit={handleSubmit(login)}>
{...other components}
<Form>
);
}
使用登录挂钩
import { useState } from "react";
import { useHistory } from "react-router";
import { useModalContext } from "../../context";
import { firebase } from "../../libs/firebase";
export default function useLogin() {
const [loading, setLoading] = useState(false);
const [, { showErrorModal }] = useModalContext();
const history = useHistory();
function login({ email, password }) {
setLoading(true);
firebase
.auth()
.signInWithEmailAndPassword(email, password)
.then(() => {
setLoading(false);
history.push("/");
})
.catch(() => {
setLoading(false);
showErrorModal("User not found");
});
}
return [loading, login];
}
【问题讨论】:
标签: javascript reactjs jestjs react-testing-library