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);
});
});