Advertisement
KDLPro

Unit Testing

Dec 16th, 2024
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Quick Question: How would you do unit tests on this function? ```
  2. async function submit() {
  3.         setIsSubmitting(true);
  4.  
  5.         if (!isConnected){
  6.             setDisplayToast(true);
  7.             setToastMessage("Please check your connection and try again.");
  8.             setToastMsgLines(1);
  9.             setToastColor(colors.danger);
  10.             setTimeout(() => {
  11.                 setDisplayToast(false);
  12.                 setIsSubmitting(false);
  13.             }, 3600);
  14.             return ;
  15.         }
  16.  
  17.         console.log("Signing in...");
  18.  
  19.         // Sign in with Supabase
  20.         const { error } = await supabase.auth.signInWithPassword({
  21.             email: form.email,
  22.             password: form.password,
  23.         })
  24.  
  25.         // Handle sign in failure
  26.         if (error){
  27.             console.log(error.status);
  28.             console.log(error.message);
  29.             if (error.name = "invalid_credentials"){
  30.                 setDisplayToast(true);
  31.                 setToastMessage("Invalid email or password. Please try again.");
  32.                 setToastMsgLines(1);
  33.                 setToastColor(colors.danger);
  34.                 setFormWarn(true);
  35.                 setTimeout(() => {
  36.                     setDisplayToast(false);
  37.                 }, 3600);
  38.                 setTimeout(() => {
  39.                     setFormWarn(false);
  40.                 }, 1000);
  41.             } else if (error.name = "email_not_confirmed"){
  42.                 setDisplayToast(true);
  43.                 setToastMessage("Please confirm your email address first.");
  44.                 setToastMsgLines(1);
  45.                 setToastColor(colors.danger);
  46.                 setFormWarn(true);
  47.                 setTimeout(() => {
  48.                     setDisplayToast(false);
  49.                 }, 3600);
  50.                 setTimeout(() => {
  51.                     setFormWarn(false);
  52.                 }, 1000);
  53.             } else if (error.status == 429){
  54.                 setDisplayToast(true);
  55.                 setToastMessage("There is a problem logging you in. Please come back in a few minutes.");
  56.                 setToastMsgLines(2);
  57.                 setToastColor(colors.danger);
  58.                 setFormWarn(true);
  59.                 setTimeout(() => {
  60.                     setDisplayToast(false);
  61.                 }, 3600);
  62.                 setTimeout(() => {
  63.                     setFormWarn(false);
  64.                 }, 1000);
  65.             }
  66.            
  67.             // Re-activate submit button
  68.             setTimeout(() => {
  69.                 setIsSubmitting(false);
  70.             }, 3600);
  71.         } else {
  72.             setIsSubmitting(false);
  73.  
  74.             // Load database data and redirect to home page once logged in.
  75.             setIsOpening(true);
  76.  
  77.             console.log("Getting data from database:");
  78.  
  79.             // Get database data
  80.             const fiberBreakdown = await getFiberBreakdownByGrade();
  81.             setFiberBreakdownDB(fiberBreakdown);
  82.    
  83.             const fibersScanned = await getFibersScannedDaily();
  84.             setFibersScannedDB(fibersScanned);
  85.  
  86.             const systemStatus = await getSystemStatusDatabase();
  87.             setSystemStatusDB(systemStatus);
  88.    
  89.             const fiberLogs = await getFiberLogs();
  90.             setFibersScanLogsDB(fiberLogs);
  91.  
  92.             // Store last update time
  93.             await storeLastDatabaseUpdateTime();
  94.  
  95.             setIsOpening(false);
  96.  
  97.             router.replace("(main_app)/home");
  98.         }
  99.     }```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement