@deskpro/react-forms
Version:
Forms library for React
73 lines (59 loc) • 3.05 kB
JavaScript
'use strict';
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _Error = require('../Error');
var _Error2 = _interopRequireDefault(_Error);
var _shallow = require('react-test-renderer/shallow');
var _shallow2 = _interopRequireDefault(_shallow);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
describe('<Error />', function () {
it('renders into null if no error is provided', function () {
var renderer = new _shallow2.default();
renderer.render(_react2.default.createElement(_Error2.default, null));
var result = renderer.getRenderOutput();
assert(result.type === 'noscript');
});
it('renders an error message', function () {
var renderer = new _shallow2.default();
renderer.render(_react2.default.createElement(_Error2.default, { error: { message: 'oops' } }));
var result = renderer.getRenderOutput();
assert(result.type === 'div');
assert(result.props.children === 'oops');
});
it('renders an error message with label from schema if complete flag is set', function () {
var renderer = new _shallow2.default();
renderer.render(_react2.default.createElement(_Error2.default, { error: { message: 'oops', schema: { label: 'Label' } }, complete: true }));
var result = renderer.getRenderOutput();
assert(result.type === 'div');
assert(result.props.children[0] === 'Label');
assert(result.props.children[1] === ': ');
assert(result.props.children[2] === 'oops');
});
it('renders an error message with label if complete flag is set', function () {
var renderer = new _shallow2.default();
renderer.render(_react2.default.createElement(_Error2.default, { label: 'Label', error: { message: 'oops' }, complete: true }));
var result = renderer.getRenderOutput();
assert(result.type === 'div');
assert(result.props.children[0] === 'Label');
assert(result.props.children[1] === ': ');
assert(result.props.children[2] === 'oops');
});
it('renders an error message with label (overrides schema label) if complete flag is set', function () {
var renderer = new _shallow2.default();
renderer.render(_react2.default.createElement(_Error2.default, { label: 'Label', error: { message: 'oops', schema: { label: 'Invalid' } }, complete: true }));
var result = renderer.getRenderOutput();
assert(result.type === 'div');
assert(result.props.children[0] === 'Label');
assert(result.props.children[1] === ': ');
assert(result.props.children[2] === 'oops');
});
it('ignores label if noLabel flag is passed', function () {
var renderer = new _shallow2.default();
renderer.render(_react2.default.createElement(_Error2.default, { label: 'Label', error: { message: 'oops', schema: { label: 'Invalid' } }, complete: true, noLabel: true }));
var result = renderer.getRenderOutput();
assert(result.type === 'div');
assert(result.props.children === 'oops');
});
}); /**
* @copyright 2015, Prometheus Research, LLC
*/