187 lines
5.8 KiB
JavaScript
187 lines
5.8 KiB
JavaScript
|
/**
|
||
|
* @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/);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
|
||
|
});
|