xxxxxxxxxx
class SignUpPageTests(TestCase):
username = 'sampleuser'
email = 'sampleuser@email.com'
def test_signupStatusCheck(self):
resp = self.client.get('/accounts/signup/')
self.assertEqual(resp.status_code, 200)
def test_signupViewName(self):
resp = self.client.get(reverse('signup'))
self.assertEqual(resp.status_code, 200)
def test_signupViewFile(self):
resp = self.client.get(reverse('signup'))
self.assertEqual(resp.status_code, 200)
self.assertTemplateUsed(resp,'signup.html')
def test_signupFormTest(self):
self.newuser = get_user_model().objects.create_user(
self.username,self.email
)
self.assertEqual(get_user_model().objects.all().count(),1)
self.assertEqual(get_user_model().objects.all()
[0].username,self.username)
self.assertEqual(get_user_model().objects.all()[0].email,self.email)
xxxxxxxxxx
import { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { Helmet } from "react-helmet";
import BgImage from "./BgImage";
import { useNavigate } from "react-router-dom";
import toast, { Toaster } from "react-hot-toast";
import { postSignUp } from "../../store/asyncMethods/authMethods";
const Signup = () => {
const [state, setState] = useState({
email: "",
password: "",
});
const { loading, signUpErrors, user } = useSelector(
(state) => state.AuthReducer
);
const dispatch = useDispatch();
const HandleInput = (e) => {
setState({
state,
[e.target.name]: e.target.value,
});
};
const Submit = async (e) => {
e.preventDefault();
dispatch(postSignUp(state));
};
const navigate = useNavigate();
useEffect(() => {
if (signUpErrors.length > 0) {
toast.error(signUpErrors);
}
if (user) {
navigate("/");
}
}, [signUpErrors, user]);
return (
<>
<Helmet>
<title>SignUp</title>
</Helmet>
<div className="row mt-80">
<div className="col-8">
<BgImage />
<Toaster
position="top-right"
reverseOrder={false}
toastOptions={{
style: {
fontSize: "14px",
},
}}
/>
</div>
<div className="col-4">
<div className="account">
<div className="account__section">
<form onSubmit={Submit}>
<div className="group">
<h3 className="form-heading">SignUp</h3>
</div>
<div className="group">
<input
type="text"
name="name"
className="group__control"
placeholder="Enter Name"
value={state.name}
onChange={HandleInput}
/>
</div>
<div className="group">
<input
type="email"
name="email"
className="group__control"
placeholder="Enter Email"
value={state.email}
onChange={HandleInput}
/>
</div>
<div className="group">
<input
type="password"
name="password"
className="group__control"
placeholder="Enter Password"
value={state.password}
onChange={HandleInput}
/>
</div>
<div className="group">
<input
type="submit"
className="btn btn-default btn-block"
value={loading ? "SignUp..." : "SignUp"}
/>
</div>
</form>
</div>
</div>
</div>
</div>
</>
);
};
export default Signup;