diff --git a/apps/sim/app/(auth)/login/login-form.test.tsx b/apps/sim/app/(auth)/login/login-form.test.tsx
index 481d546333b..00bf49df227 100644
--- a/apps/sim/app/(auth)/login/login-form.test.tsx
+++ b/apps/sim/app/(auth)/login/login-form.test.tsx
@@ -2,7 +2,7 @@
* @vitest-environment jsdom
*/
-import { fireEvent, render, screen, waitFor } from '@testing-library/react'
+import { act, fireEvent, render, screen, waitFor } from '@testing-library/react'
import { useRouter, useSearchParams } from 'next/navigation'
import { beforeEach, describe, expect, it, vi } from 'vitest'
import { client } from '@/lib/auth-client'
@@ -104,7 +104,10 @@ describe('LoginPage', () => {
it('should show loading state during form submission', async () => {
const mockSignIn = vi.mocked(client.signIn.email)
mockSignIn.mockImplementation(
- () => new Promise((resolve) => resolve({ data: { user: { id: '1' } }, error: null }))
+ () =>
+ new Promise((resolve) =>
+ setTimeout(() => resolve({ data: { user: { id: '1' } }, error: null }), 100)
+ )
)
render()
@@ -113,12 +116,16 @@ describe('LoginPage', () => {
const passwordInput = screen.getByPlaceholderText(/enter your password/i)
const submitButton = screen.getByRole('button', { name: /sign in/i })
- fireEvent.change(emailInput, { target: { value: 'test@example.com' } })
- fireEvent.change(passwordInput, { target: { value: 'password123' } })
- fireEvent.click(submitButton)
+ await act(async () => {
+ fireEvent.change(emailInput, { target: { value: 'test@example.com' } })
+ fireEvent.change(passwordInput, { target: { value: 'password123' } })
+ fireEvent.click(submitButton)
+ })
- expect(screen.getByText('Signing in...')).toBeInTheDocument()
- expect(submitButton).toBeDisabled()
+ await waitFor(() => {
+ expect(screen.getByText('Signing in...')).toBeInTheDocument()
+ expect(submitButton).toBeDisabled()
+ })
})
})
diff --git a/apps/sim/app/(auth)/login/login-form.tsx b/apps/sim/app/(auth)/login/login-form.tsx
index 548d20b0508..566aa18cd01 100644
--- a/apps/sim/app/(auth)/login/login-form.tsx
+++ b/apps/sim/app/(auth)/login/login-form.tsx
@@ -5,7 +5,13 @@ import { Eye, EyeOff } from 'lucide-react'
import Link from 'next/link'
import { useRouter, useSearchParams } from 'next/navigation'
import { Button } from '@/components/ui/button'
-import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog'
+import {
+ Dialog,
+ DialogContent,
+ DialogDescription,
+ DialogHeader,
+ DialogTitle,
+} from '@/components/ui/dialog'
import { Input } from '@/components/ui/input'
import { Label } from '@/components/ui/label'
import { client } from '@/lib/auth-client'
@@ -494,11 +500,11 @@ export default function LoginPage({
Reset Password
+
+ Enter your email address and we'll send you a link to reset your password.
+
-
- Enter your email address and we'll send you a link to reset your password.
-