@navinc/base-react-components
Version:
Nav's Pattern Library
43 lines • 1.89 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { describe, expect, it } from 'vitest';
import { screen } from '@testing-library/react';
import { HelperText, getError } from './helper-text.js';
import { testComponentRef, testComponentCommonStandards } from '@navinc/test-helpers';
import { renderWithContext } from '../../tests/with-app-context.js';
describe('getError', () => {
const cases = [
['some error', 'some error'],
[['error 1', 'error 2'], 'error 1'],
[[], undefined],
[undefined, undefined],
];
it.each(cases)('getError(%s) should return a string or undefined', (input, expected) => {
expect(getError(input)).toEqual(expected);
});
});
describe('<HelperText />', () => {
testComponentRef(HelperText);
testComponentCommonStandards(HelperText);
it('renders empty div with no props to preserve spacing', () => {
renderWithContext(_jsx(HelperText, {}));
expect(screen.getByTestId('helper-text')).toBeEmptyDOMElement();
});
it('renders with helper text', () => {
const text = "Help! I have fallen and I can't get up!";
renderWithContext(_jsx(HelperText, { helperText: text }));
expect(screen.getByText(text));
});
it('renders with error text', () => {
const text = 'Oh no, I broke it!';
renderWithContext(_jsx(HelperText, { errorText: text }));
expect(screen.getByText(text));
});
it('renders with error text as priority', () => {
const helperText = "Help! I have fallen and I can't get up!";
const errorText = 'Oh no, I broke it!';
renderWithContext(_jsx(HelperText, { helperText: helperText, errorText: errorText }));
expect(screen.getByText(errorText));
expect(screen.queryByText(helperText)).not.toBeInTheDocument();
});
});
//# sourceMappingURL=helper-text.spec.js.map