UNPKG

vanilla-validation

Version:

Vanilla JavaScript validation rules

66 lines (48 loc) 2.46 kB
const jsdom = require("jsdom"); const { JSDOM } = jsdom; describe("vrule_requiredIf", function() { var vRules = require('../src/utilities/form-validation'); console.log("testing: vrule_requiredIf") it("should be required", function() { const dom = new JSDOM(`<!DOCTYPE html><input value="" id="test"><input id="valAgainst">`); let dummyInput = dom.window.document.getElementById('test') let validateAgainst = dom.window.document.getElementById('valAgainst') validateAgainst.value = "required" expect( vRules.vrule_requiredIf(dummyInput, [validateAgainst, 'required']).message ).toEqual('This question is required') }); it("should be required (multiple options)", function() { const dom = new JSDOM(`<!DOCTYPE html><input value="" id="test"><input id="valAgainst">`); let dummyInput = dom.window.document.getElementById('test') let validateAgainst = dom.window.document.getElementById('valAgainst') validateAgainst.value = "required" expect( vRules.vrule_requiredIf(dummyInput, [validateAgainst, 'required||alsoRequired']).message ).toEqual('This question is required') validateAgainst.value = "alsoRequired" expect( vRules.vrule_requiredIf(dummyInput, [validateAgainst, 'required||alsoRequired']).message ).toEqual('This question is required') }); it("should pass validation with empty value", function() { const dom = new JSDOM( `<!DOCTYPE html><input value="" id="test"><input id="valAgainst" value="not required">` ); let dummyInput = dom.window.document.getElementById('test') let validateAgainst = dom.window.document.getElementById('valAgainst') expect( vRules.vrule_requiredIf(dummyInput, [validateAgainst, 'required']).message ).not.toBeDefined(); }); it("should pass validation with value when required", function() { const dom = new JSDOM( `<!DOCTYPE html><input value="valid value" id="test"><input id="valAgainst" value="required">` ); let dummyInput = dom.window.document.getElementById('test') let validateAgainst = dom.window.document.getElementById('valAgainst') expect( vRules.vrule_requiredIf(dummyInput, [validateAgainst, 'required']).message ).not.toBeDefined(); }); });