mirror of https://github.com/grafana/grafana.git
				
				
				
			
		
			
	
	
		
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
|  | import { render, screen } from '@testing-library/react'; | ||
|  | import userEvent from '@testing-library/user-event'; | ||
|  | import React from 'react'; | ||
|  | 
 | ||
|  | import { TextBoxVariableForm } from './TextBoxVariableForm'; | ||
|  | 
 | ||
|  | describe('TextBoxVariableForm', () => { | ||
|  |   it('renders correctly', () => { | ||
|  |     const onChange = jest.fn(); | ||
|  |     const onBlur = jest.fn(); | ||
|  |     const value = 'test value'; | ||
|  | 
 | ||
|  |     render(<TextBoxVariableForm value={value} onChange={onChange} onBlur={onBlur} />); | ||
|  | 
 | ||
|  |     expect(screen.getByText('Text options')).toBeInTheDocument(); | ||
|  |     expect(screen.getByRole('textbox', { name: 'Default value' })).toBeInTheDocument(); | ||
|  |   }); | ||
|  | 
 | ||
|  |   it('calls onChange when input value changes', async () => { | ||
|  |     const onChange = jest.fn(); | ||
|  |     const onBlur = jest.fn(); | ||
|  |     const value = 'test value'; | ||
|  | 
 | ||
|  |     render(<TextBoxVariableForm value={value} onChange={onChange} onBlur={onBlur} />); | ||
|  | 
 | ||
|  |     const input = screen.getByRole('textbox', { name: 'Default value' }); | ||
|  |     expect(input).toHaveValue(value); | ||
|  | 
 | ||
|  |     // change input value
 | ||
|  |     const newValue = 'new value'; | ||
|  |     await userEvent.type(input, newValue); | ||
|  |     expect(onChange).toHaveBeenCalledTimes(newValue.length); | ||
|  |   }); | ||
|  | }); |