react-web-native-sketch
Version:
[TODO: We need an overview of how this can be used via npm vs as a local package]
48 lines • 2.49 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var Enzyme = require("enzyme");
var enzyme_1 = require("enzyme");
var Adapter = require("enzyme-adapter-react-16");
var React = require("react");
var strings_1 = require("../../../../../src/utils/strings");
var TextInput_1 = require("src/nativeComponents/TextInput/TextInput");
var enums_1 = require("src/utils/enums");
Enzyme.configure({ adapter: new Adapter() });
describe('<TextInput />', function () {
it('renders', function () {
var wrapper = enzyme_1.mount(React.createElement(TextInput_1.TextInput, { onChange: function () { }, inputType: enums_1.TEXT_INPUT_TYPES.TEXT }));
expect(wrapper).toMatchSnapshot();
});
it('returns entered string', function () {
var x = '';
var wrapper = enzyme_1.mount(React.createElement(TextInput_1.TextInput, { onChange: function (value) { return x = value; }, inputType: enums_1.TEXT_INPUT_TYPES.TEXT }));
var input = wrapper.find('input');
input.instance().value = 'First';
input.simulate('change', input);
expect(x).toBe('First');
});
it('properly checks floats', function () {
var x = '';
var wrapper = enzyme_1.mount(React.createElement(TextInput_1.TextInput, { onChange: function (value) { return x = value; }, inputType: enums_1.TEXT_INPUT_TYPES.FLOAT }));
var input = wrapper.find('input');
input.instance().value = '123';
input.simulate('change', input);
expect(x).toBe(123);
input.instance().value = '123.5';
input.simulate('change', input);
expect(x).toBe(123.5);
input.instance().value = '123.5.';
input.simulate('change', input);
expect(x['error']).toBe(strings_1.FIELD_MUST_BE_NUMBER);
});
it('initialises from value & uses rawToDb and dbToRaw the way it should', function () {
var x = '';
var wrapper = enzyme_1.mount(React.createElement(TextInput_1.TextInput, { value: "123", rawToDb: function (value) { return +value + 1; }, dbToRaw: function (value) { return (value - 1).toString(); }, onChange: function (value) { return x = value; }, inputType: enums_1.TEXT_INPUT_TYPES.FLOAT }));
var input = wrapper.find('input');
expect(input.instance().value).toBe("122");
input.instance().value = '213';
input.simulate('change', input);
expect(x).toBe(214);
});
});
//# sourceMappingURL=TextInput.native.spec.js.map