@sanity/form-builder
Version:
Sanity form builder
61 lines (58 loc) • 2.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.FormBuilderTester = exports.DEFAULT_PROPS = void 0;
exports.inputTester = inputTester;
var _ui = require("@sanity/ui");
var _react = require("@testing-library/react");
var _react2 = _interopRequireDefault(require("react"));
var _formBuilder = require("../../sanity/legacyPartImplementations/form-builder");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
var patchChannel = _formBuilder.FormBuilder.createPatchChannel();
var DEFAULT_PROPS = {
level: 0,
markers: [],
presence: [],
compareValue: undefined,
readOnly: undefined,
filterField: () => true,
patchChannel: patchChannel,
onBlur: () => undefined,
autoFocus: undefined,
focusPath: [],
changesOpen: false
};
// Use this to test specific inputs rendered in the form-builder
exports.DEFAULT_PROPS = DEFAULT_PROPS;
function inputTester(document, type, schema, testId) {
var onFocus = jest.fn();
var onBlur = jest.fn();
var onChange = jest.fn();
var _render = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(FormBuilderTester, _extends({}, DEFAULT_PROPS, {
schema: schema,
value: document,
type: type,
onChange: onChange,
onFocus: onFocus,
onBlur: onBlur
}))),
queryByTestId = _render.queryByTestId;
var inputContainer = queryByTestId(testId);
return {
onChange,
onFocus,
onBlur,
inputContainer
};
}
// Use this in your test to get full control when testing the form builder
// the default props are available in DEFAULT_props
var FormBuilderTester = /*#__PURE__*/_react2.default.forwardRef(function FormBuilderTester(props, ref) {
return /*#__PURE__*/_react2.default.createElement(_ui.ThemeProvider, {
scheme: "light",
theme: _ui.studioTheme
}, /*#__PURE__*/_react2.default.createElement(_ui.LayerProvider, null, /*#__PURE__*/_react2.default.createElement(_ui.ToastProvider, null, /*#__PURE__*/_react2.default.createElement(_formBuilder.FormBuilder, props))));
});
exports.FormBuilderTester = FormBuilderTester;