Spaces:
Sleeping
Sleeping
| /** | |
| * @filedescription Merge Strategy Tests | |
| */ | |
| /* global it, describe, beforeEach */ | |
| ; | |
| //----------------------------------------------------------------------------- | |
| // 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/); | |
| }); | |
| }); | |
| }); | |