developertrinidad08 7e6cf29479 first commit
2023-01-16 18:11:14 -03:00

134 lines
4.3 KiB
JavaScript

var vows = require('../lib/vows');
var assert = require('assert');
vows.describe('vows/assert').addBatch({
"The Assertion module": {
"`equal`": function () {
assert.equal("hello world", "hello world");
assert.equal(1, true);
},
"`match`": function () {
assert.match("hello world", /^[a-z]+ [a-z]+$/);
},
"`lengthOf`": function () {
assert.lengthOf("hello world", 11);
assert.lengthOf([1, 2, 3], 3);
},
"`isDefined`": function () {
assert.isDefined(null);
assertError(assert.isDefined, undefined);
},
"`include`": function () {
assert.include("hello world", "world");
assert.include([0, 42, 0], 42);
assert.include({goo:true}, 'goo');
},
"`deepInclude`": function () {
assert.deepInclude([{a:'b'},{c:'d'}], {a:'b'});
assert.deepInclude("hello world", "world");
assert.deepInclude({goo:true}, 'goo');
},
"`typeOf`": function () {
assert.typeOf('goo', 'string');
assert.typeOf(42, 'number');
assert.typeOf([], 'array');
assert.typeOf({}, 'object');
assert.typeOf(false, 'boolean');
},
"`instanceOf`": function () {
assert.instanceOf([], Array);
assert.instanceOf(function () {}, Function);
},
"`isArray`": function () {
assert.isArray([]);
assertError(assert.isArray, {});
},
"`isString`": function () {
assert.isString("");
},
"`isObject`": function () {
assert.isObject({});
assertError(assert.isObject, []);
},
"`isNumber`": function () {
assert.isNumber(0);
},
"`isBoolean`": function (){
assert.isBoolean(true);
assert.isBoolean(false);
assertError(assert.isBoolean, 0);
},
"`isNan`": function () {
assert.isNaN(0/0);
},
"`isTrue`": function () {
assert.isTrue(true);
assertError(assert.isTrue, 1);
},
"`isFalse`": function () {
assert.isFalse(false);
assertError(assert.isFalse, 0);
},
"`isZero`": function () {
assert.isZero(0);
assertError(assert.isZero, null);
},
"`isNotZero`": function () {
assert.isNotZero(1);
},
"`isUndefined`": function () {
assert.isUndefined(undefined);
assertError(assert.isUndefined, null);
},
"`isDefined`": function () {
assert.isDefined(null);
assertError(assert.isDefined, undefined);
},
"`isNull`": function () {
assert.isNull(null);
assertError(assert.isNull, 0);
assertError(assert.isNull, undefined);
},
"`isNotNull`": function () {
assert.isNotNull(0);
},
"`greater` and `lesser`": function () {
assert.greater(5, 4);
assert.lesser(4, 5);
},
"`inDelta`": function () {
assert.inDelta(42, 40, 5);
assert.inDelta(42, 40, 2);
assert.inDelta(42, 42, 0);
assert.inDelta(3.1, 3.0, 0.2);
assertError(assert.inDelta, [42, 40, 1]);
},
"`isEmpty`": function () {
assert.isEmpty({});
assert.isEmpty([]);
assert.isEmpty("");
},
"`isNotEmpty`": function () {
assert.isNotEmpty({goo:true});
assert.isNotEmpty([1]);
assert.isNotEmpty(" ");
assertError(assert.isNotEmpty, {});
assertError(assert.isNotEmpty, []);
assertError(assert.isNotEmpty, "");
}
}
}).export(module);
function assertError(assertion, args, fail) {
if (!Array.isArray(args)) { args = [args]; }
try {
assertion.apply(null, args);
fail = true;
} catch (e) {/* Success */}
fail && assert.fail(args.join(' '), assert.AssertionError,
"expected an AssertionError for {actual}",
"assertError", assertError);
}