From 93cf786779511e19aeb5d678b3f7861be1e2b05e Mon Sep 17 00:00:00 2001 From: Paula Markowska Date: Sun, 25 Feb 2024 18:20:51 +0100 Subject: [PATCH] unitTest --- dummy/@/lib/auth/sign-in.test.tsx | 56 ++++++++++++++++++++++++------ dummy/@/lib/auth/sign-in.tsx | 2 +- dummy/@/lib/form/get-data.test.ts | 6 ---- dummy/@/lib/form/get-data.test.tsx | 17 +++++++++ dummy/@/lib/use-toggle.test.tsx | 14 ++++++-- 5 files changed, 75 insertions(+), 20 deletions(-) delete mode 100644 dummy/@/lib/form/get-data.test.ts create mode 100644 dummy/@/lib/form/get-data.test.tsx diff --git a/dummy/@/lib/auth/sign-in.test.tsx b/dummy/@/lib/auth/sign-in.test.tsx index 52f34d6..7623e6b 100644 --- a/dummy/@/lib/auth/sign-in.test.tsx +++ b/dummy/@/lib/auth/sign-in.test.tsx @@ -1,23 +1,57 @@ import {describe, expect, it, vi} from 'vitest'; import {FormEvent} from 'react' import {signIn, SignInForm} from './sign-in' -import {render, screen} from '@testing-library/react'; +import {render, screen, fireEvent, waitFor} from '@testing-library/react'; import {getFormData} from '../form/get-data'; +import React from 'react'; describe('SignInForm', () => { - it.todo('should display email input') - it.todo('should display password input') - it.todo('should display sign in button') + it('should display email input', () => { + const {baseElement} = render(); + const email = baseElement.querySelector('input[type="email"]'); + expect(email).toBeTruthy(); + }) + it('should display password input', () => { + const {baseElement} = render(); + const password = baseElement.querySelector('input[type="password"]'); + expect(password).toBeTruthy(); +}) + + it('should display sign in button', () => { + + const {baseElement} = render(); + const button = baseElement.querySelector('button[type="submit"]'); + expect(button).toBeTruthy(); + }) + - it.todo('should be submitted with email and password', () => { + it.only('should be submitted with email and password', async() => { const onSubmit = vi.fn((event: FormEvent) => getFormData(event.currentTarget)) - render() + render() + const email = screen.getByRole('textbox', {name: "Email"}); + const password = screen.getByRole('textbox', {name: "Password"}); + const button = screen.getByRole('button'); + // when + fireEvent.change(email, { target: { value: 'mariuszkowalski@onet.pl' } }); + fireEvent.change(password, { target: { value: 'Mariusz1234!' } }) + fireEvent.click(button); + + + +await waitFor(() => { + expect(onSubmit).toHaveBeenCalled(); + }); + }) }) -describe('signIn', () => { - it.todo('should return `wrong email` error') - it.todo('should return `invalid password` error') - it.todo('should authenticate user') -}) + +// describe('signIn', () => { +// it.todo('should return `wrong email` error' () => { +// expect(signIn()).toBe() + +// }) +// it.todo('should return `invalid password` error') +// it.todo('should authenticate user') +// }) diff --git a/dummy/@/lib/auth/sign-in.tsx b/dummy/@/lib/auth/sign-in.tsx index 97078ea..a635fe1 100644 --- a/dummy/@/lib/auth/sign-in.tsx +++ b/dummy/@/lib/auth/sign-in.tsx @@ -52,7 +52,7 @@ export function SignInForm({ -