Repository URL to install this package:
|
Version:
3.4.4 ▾
|
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
// - [ ] render
// - test passThrough props going to the wrapper & input (they go to the right place)
// - test render using custom plugin
// - test renderWrap
// - test renderInput
// - test renderForm
// - test FormContext consumer
// - test InputContext consumer
// - test rendered styles on validations true & false
require("./_setup");
const React = require("react");
const react_testing_library_1 = require("react-testing-library");
const OneForm_1 = require("../new-forms/OneForm/OneForm");
const ObserverInput_1 = require("../new-forms/inputs/ObserverInput");
const PluginsContext_1 = require("../new-forms/plugins/PluginsContext");
const InputContext_1 = require("../new-forms/inputs/InputContext");
const FormContext_1 = require("../new-forms/forms/FormContext");
/**
* @todo can use renderProps in the inputsList
*/
class TestPlugin extends React.Component {
static isSatisfiedByProps(props) {
return true;
}
render() {
return (React.createElement(ObserverInput_1.ObserverInput, { label: "Test", type: "test", state: this.props.state, renderInput: props => (React.createElement(FormContext_1.FormContext.Consumer, null, context => {
expect(typeof context).toEqual('object');
return React.createElement("input", Object.assign({}, props, { "data-qa": "qa-test-input", type: "test" }));
})), renderWrap: props => (React.createElement(InputContext_1.InputContext.Consumer, null, context => {
expect(context.type).toEqual('test');
return React.createElement("div", Object.assign({}, props, { "data-qa": "qa-test-wrap" }));
})) }));
}
}
describe('@skava/forms - render', () => {
afterEach(react_testing_library_1.cleanup);
it('should provide contexts from forms + inputs', () => {
expect.assertions(3);
const formState = new OneForm_1.OneFormState().setInputsList([
{
type: 'test',
},
]);
const view = (React.createElement(PluginsContext_1.PluginsContext.Provider, { value: [TestPlugin] },
React.createElement(OneForm_1.OneObserverForm, { state: formState })));
const { container } = react_testing_library_1.render(view);
const inputRenderer = container.querySelector('form');
const html = inputRenderer.outerHTML;
react_testing_library_1.fireEvent.click(inputRenderer);
expect(html).toMatchSnapshot();
});
});
//# sourceMappingURL=render.test.js.map