var React = require('react/addons'); var TestUtils = React.addons.TestUtils; var Formsy = require('./../src/main.js'); describe('Rules: isExisty', function() { var TestInput, isValid, form, input; function pass(value) { return pass.length ? function () { TestUtils.Simulate.change(input, {target: {value: value}}); expect(isValid).toBe(true); } : function () { expect(isValid).toBe(true); }; } function fail(value) { return fail.length ? function () { TestUtils.Simulate.change(input, {target: {value: value}}); expect(isValid).toBe(false); } : function () { expect(isValid).toBe(false); }; } beforeEach(function() { TestInput = React.createClass({ mixins: [Formsy.Mixin], updateValue: function (event) { this.setValue(event.target.value); }, render: function () { isValid = this.isValid(); return } }); form = TestUtils.renderIntoDocument( ); input = TestUtils.findRenderedDOMComponentWithTag(form, 'INPUT'); }); afterEach(function() { TestInput = isValid = form = null; }); it('should fail with a default value', fail()); it('should pass with a string', pass('myValue')); it('should pass with an empty string', pass('')); it('should fail with an undefined', fail(undefined)); it('should fail with a null', fail(null)); it('should pass with a number', pass(42)); it('should pass with a zero', pass(0)); });