UNPKG

@sanity/form-builder

Version:
61 lines (58 loc) 2.46 kB
"use strict"; 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;