You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
186 lines
5.8 KiB
186 lines
5.8 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/); |
|
}); |
|
}); |
|
|
|
|
|
});
|
|
|