import React from 'react'; import { brandQuery } from '@webapp/models/query'; import { render, screen, fireEvent } from '@testing-library/react'; import QueryInput from './QueryInput'; describe('QueryInput', () => { it('changes content correctly', () => { const onSubmit = jest.fn(); render( ); const form = screen.getByRole('form', { name: /query-input/i }); fireEvent.submit(form); expect(onSubmit).toHaveBeenCalledWith('myquery'); const input = screen.getByRole('textbox'); fireEvent.change(input, { target: { value: 'myquery2' } }); fireEvent.submit(form); expect(onSubmit).toHaveBeenCalledWith('myquery2'); }); describe('submission', () => { const onSubmit = jest.fn(); beforeEach(() => { render( ); }); it('is submitted by pressing Enter', () => { const input = screen.getByRole('textbox'); fireEvent.keyDown(input, { key: 'Enter' }); expect(onSubmit).toHaveBeenCalledWith('myquery'); }); it('is submitted by clicking on the Execute button', () => { const button = screen.getByRole('button'); button.click(); expect(onSubmit).toHaveBeenCalledWith('myquery'); }); }); });