import { describe, it, expect } from 'vitest'; import { createRenderer, isJsdom } from '@mui/internal-test-utils'; import { ThemeProvider, createTheme } from '@mui/material/styles'; import NotchedOutline from './NotchedOutline'; describe('', () => { const { render } = createRenderer(); const defaultProps = { notched: true, label: 'My label', }; it('should pass props', () => { const { container } = render( , ); expect(container.querySelector('fieldset')).to.have.class('notched-outline'); expect(container.querySelector('fieldset').style.width).to.equal('17px'); }); it('should set alignment rtl', () => { const { container: container1 } = render( , ); expect(container1.querySelector('fieldset')).toHaveComputedStyle({ paddingLeft: '8px', }); const { container: container2 } = render( , ); expect(container2.querySelector('fieldset')).toHaveComputedStyle({ paddingRight: '8px', }); }); it.skipIf(isJsdom())( 'should not set padding (notch) for empty, null or undefined label props', function test() { const spanStyle = { paddingLeft: '0px', paddingRight: '0px' }; ['', undefined, null].forEach((prop) => { const { container: container1 } = render(); expect(container1.querySelector('span')).toHaveComputedStyle(spanStyle); }); }, ); it.skipIf(isJsdom())('should not leave a gap in the outline without a label', () => { const { container } = render( , ); expect(container.querySelector('legend').getBoundingClientRect().width).to.equal(0); }); });