vanilla-validation
Version:
Vanilla JavaScript validation rules
66 lines (48 loc) • 2.46 kB
JavaScript
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(`<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(`<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(
`<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(
`<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();
});
});