var Formsy = require('./../src/main.js'); describe('Rules: isAlpha', function() { var TestInput, isValid, form, input; beforeEach(function() { isValid = jasmine.createSpy('valid'); TestInput = React.createClass({ mixins: [Formsy.Mixin], updateValue: function (event) { this.setValue(event.target.value); }, render: function () { if (this.isValid()) { isValid(); } return } }); form = TestUtils.renderIntoDocument( ); input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT'); }); afterEach(function() { TestInput = isValid = isInvalid = form = null; }); it('should fail with undefined', function () { expect(isValid).not.toHaveBeenCalled(); TestUtils.Simulate.change(input, {target: {value: undefined}}); expect(isValid).not.toHaveBeenCalled(); }); it('should fail with null', function () { expect(isValid).not.toHaveBeenCalled(); TestUtils.Simulate.change(input, {target: {value: null}}); expect(isValid).not.toHaveBeenCalled(); }); it('should fail with a number', function () { expect(isValid).not.toHaveBeenCalled(); TestUtils.Simulate.change(input, {target: {value: 123}}); expect(isValid).not.toHaveBeenCalled(); }); it('should pass with a string', function () { expect(isValid).not.toHaveBeenCalled(); TestUtils.Simulate.change(input, {target: {value: 'myValue'}}); expect(isValid).toHaveBeenCalled(); }); });