Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/forms / build / dist / src / __tests__ / enzyme.test.js
Size: Mime:
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/**
 * @todo this does not import
 */
require("./_setup");
const React = require("react");
const mobx_1 = require("xmobx/mobx");
const enzyme_1 = require("enzyme");
const ObserverInput_1 = require("../new-forms/inputs/ObserverInput");
const InputState_1 = require("../new-forms/inputs/InputState");
describe('@skava/forms - enzyme', () => {
    it('TextInput rendering and change in value reflects in state change', () => {
        const state = new InputState_1.InputState();
        const Wrapper = enzyme_1.mount(React.createElement(ObserverInput_1.ObserverInput, { state: state }));
        const Input = Wrapper.find('input');
        Input.simulate('change', { target: { value: 'FOo*' } });
        expect(state.value).toBe('FOo*');
    });
    it('Error Message is rendered onblur', () => {
        expect.assertions(6);
        const state = new InputState_1.InputState();
        state.setValidator((value) => state.value === 'eh' ? true : 'test error');
        state.setValue('eh');
        // 1
        expect(state.value).toBe('eh');
        const handleFocus = () => {
            state.setValue('focused');
        };
        mobx_1.observe(state, 'isActive', () => {
            handleFocus();
        });
        // onFocus={handleFocus}
        const Wrapper = enzyme_1.mount(React.createElement(ObserverInput_1.ObserverInput, { state: state }));
        const Input = Wrapper.find('input');
        const errors = Wrapper.find('[role="alert"]');
        // 3
        expect(errors.length).toBe(1);
        // 4
        expect(errors.at(0).text()).toBe('');
        Input.simulate('focus');
        // 5
        expect(state.value).toBe('focused');
        // 6
        expect(Wrapper.find('[role="alert"]')
            .at(0)
            .text()).toBe('test error');
        Input.simulate('blur');
        // 7
        expect(Wrapper.find('[role="alert"]')
            .at(0)
            .text()).toBe('test error');
    });
    it('Error should not be rendered when input has some value on blur', () => {
        const state = new InputState_1.InputState();
        state.setValidator((value) => true);
        state.setValue('eh');
        expect(state.value).toBe('eh');
        const handleFocus = () => {
            state.setValue('focused');
        };
        mobx_1.observe(state, 'isActive', () => {
            handleFocus();
        });
        const Wrapper = enzyme_1.mount(React.createElement(ObserverInput_1.ObserverInput, { state: state }));
        const Input = Wrapper.find('input');
        expect(Wrapper.find('[role="alert"]')
            .at(0)
            .text()).toBe('');
        Input.simulate('focus');
        expect(state.value).toBe('focused');
        Input.simulate('change', { target: { value: 'FOo*' } });
        expect(state.value).toBe('FOo*');
        expect(Wrapper.find('[role="alert"]')
            .at(0)
            .text()).toBe('');
        Input.simulate('blur');
        expect(Wrapper.find('[role="alert"]')
            .at(0)
            .text()).toBe('');
    });
    it.skip('TextInput rendering and change in value reflects in state change', () => {
        // const Wrapper = mount(<TextAreaInput />)
        // const Wrapper = TestRenderer.create(<TextAreaInput />)
        // const Input = Wrapper.find('textarea')
        // Input.simulate('change', { target: { value: 'FOo*' } })
        // expect(Wrapper.state('value')).toBe('FOo*')
        // console.log('Wrapper', Wrapper.children())
        // console.log('Wrapper', Wrapper.debug())
        // const Input = Wrapper.find('textarea')
        // Input.simulate('keydown', { key: 'z', keyCode: 90, which: 90 })
        // Input.simulate('change', { target: { value: 'FOo*' } })
        // console.log('**************', Input.value())
        // expect(Wrapper.state('value')).toBe('FOo*')
    });
});
//# sourceMappingURL=enzyme.test.js.map