import React from 'react'; import uxpect from 'app/test/unexpected'; import { render, fireEvent, screen } from '@testing-library/react'; import sinon from 'sinon'; import { TestContextProvider } from 'app/shell'; import ChangePassword from './ChangePassword'; describe('', () => { it('renders two components', () => { render( {}} /> , ); expect(screen.getByLabelText('New password', { exact: false })).toBeInTheDocument(); expect(screen.getByLabelText('Repeat the password', { exact: false })).toBeInTheDocument(); }); it('should call onSubmit if passwords entered', async () => { const onSubmit = sinon.spy(() => Promise.resolve()).named('onSubmit'); render( , ); fireEvent.change(screen.getByLabelText('New password', { exact: false }), { target: { value: '123', }, }); fireEvent.change(screen.getByLabelText('Repeat the password', { exact: false }), { target: { value: '123', }, }); fireEvent.click(screen.getByRole('button', { name: 'Change password' }).closest('button') as HTMLButtonElement); uxpect(onSubmit, 'was called'); }); });