An error occurred while loading the file. Please try again.
validation-strategy.js 5.83 KiB
/**
 * @filedescription Merge Strategy Tests
 */
/* global it, describe, beforeEach */
"use strict";
//-----------------------------------------------------------------------------
// Requirements
//-----------------------------------------------------------------------------
const assert = require("chai").assert;
const { ValidationStrategy } = require("../src/");
//-----------------------------------------------------------------------------
// Class
//-----------------------------------------------------------------------------
describe("ValidationStrategy", () => {
    describe("boolean", () => {
        it("should not throw an error when the value is a boolean", () => {
            ValidationStrategy.boolean(true);
        });
        it("should throw an error when the value is null", () => {
            assert.throws(() => {
                ValidationStrategy.boolean(null);
            }, /Expected a Boolean/);
        });
        it("should throw an error when the value is a string", () => {
            assert.throws(() => {
                ValidationStrategy.boolean("foo");
            }, /Expected a Boolean/);
        });
        it("should throw an error when the value is a number", () => {
            assert.throws(() => {
                ValidationStrategy.boolean(123);
            }, /Expected a Boolean/);
        });
        it("should throw an error when the value is an object", () => {
            assert.throws(() => {
                ValidationStrategy.boolean({});
            }, /Expected a Boolean/);
        });
    });
    describe("number", () => {
        it("should not throw an error when the value is a number", () => {
            ValidationStrategy.number(25);
        });
        it("should throw an error when the value is null", () => {
            assert.throws(() => {
                ValidationStrategy.number(null);
            }, /Expected a number/);
        });
        it("should throw an error when the value is a string", () => {
            assert.throws(() => {
                ValidationStrategy.number("foo");
            }, /Expected a number/);
        });
        it("should throw an error when the value is a boolean", () => {
            assert.throws(() => {
                ValidationStrategy.number(true);
}, /Expected a number/); }); it("should throw an error when the value is an object", () => { assert.throws(() => { ValidationStrategy.number({}); }, /Expected a number/); }); }); describe("object", () => { it("should not throw an error when the value is an object", () => { ValidationStrategy.object({}); }); it("should throw an error when the value is null", () => { assert.throws(() => { ValidationStrategy.object(null); }, /Expected an object/); }); it("should throw an error when the value is a string", () => { assert.throws(() => { ValidationStrategy.object(""); }, /Expected an object/); }); }); describe("array", () => { it("should not throw an error when the value is an array", () => { ValidationStrategy.array([]); }); it("should throw an error when the value is null", () => { assert.throws(() => { ValidationStrategy.array(null); }, /Expected an array/); }); it("should throw an error when the value is a string", () => { assert.throws(() => { ValidationStrategy.array(""); }, /Expected an array/); }); it("should throw an error when the value is an object", () => { assert.throws(() => { ValidationStrategy.array({}); }, /Expected an array/); }); }); describe("object?", () => { it("should not throw an error when the value is an object", () => { ValidationStrategy["object?"]({}); }); it("should not throw an error when the value is null", () => { ValidationStrategy["object?"](null); }); it("should throw an error when the value is a string", () => { assert.throws(() => { ValidationStrategy["object?"](""); }, /Expected an object/); }); }); describe("string", () => { it("should not throw an error when the value is a string", () => {
ValidationStrategy.string("foo"); }); it("should not throw an error when the value is an empty string", () => { ValidationStrategy.string(""); }); it("should throw an error when the value is null", () => { assert.throws(() => { ValidationStrategy.string(null); }, /Expected a string/); }); it("should throw an error when the value is an object", () => { assert.throws(() => { ValidationStrategy.string({}); }, /Expected a string/); }); }); describe("string!", () => { it("should not throw an error when the value is an string", () => { ValidationStrategy["string!"]("foo"); }); it("should throw an error when the value is an empty string", () => { assert.throws(() => { ValidationStrategy["string!"](""); }, /Expected a non-empty string/); }); it("should throw an error when the value is null", () => { assert.throws(() => { ValidationStrategy["string!"](null); }, /Expected a non-empty string/); }); it("should throw an error when the value is an object", () => { assert.throws(() => { ValidationStrategy["string!"]({}); }, /Expected a non-empty string/); }); }); });