mock-data
Version:
generate mock data (random string, number, date, ipv4, etc.)
191 lines (153 loc) • 6 kB
JavaScript
+ function() {
"use strict";
var should = require("should");
var utils = require("../../util/utils")
, rStr = require("../../").string;
describe("Test string", function() {
var str, str1;
describe("Basic tests", function() {
it("should exist and is a function", function(done) {
should.exist(rStr.should) && rStr.should.be.a.Function;
done();
});
it("should be able to set params by construct and get params directly", function(done) {
str = rStr();
(str.include).should.equal("aA#!");
(str.maxLength).should.equal(32);
(str.minLength).should.equal(16);
str = rStr(64, "aA!");
(str.include).should.equal("aA!");
(str.maxLength).should.equal(64);
(str.minLength).should.equal(16);
str = rStr("a#!");
(str.include).should.equal("a#!");
(str.maxLength).should.equal(32);
(str.minLength).should.equal(16);
str = rStr(36);
(str.include).should.equal("aA#!");
(str.maxLength).should.equal(36);
(str.minLength).should.equal(16);
str = rStr(8, 36);
(str.include).should.equal("aA#!");
(str.maxLength).should.equal(36);
(str.minLength).should.equal(8);
str = rStr(8, 72, "asdA$");
(str.include).should.equal("aA");
(str.maxLength).should.equal(72);
(str.minLength).should.equal(8);
str = rStr({maxLength: 34, minLength: 14});
(str.include).should.equal("aA#!");
(str.maxLength).should.equal(34);
(str.minLength).should.equal(14);
str = rStr({include: "a#", maxLength: 36, minLength: 12});
(str.include).should.equal("a#");
(str.maxLength).should.equal(36);
(str.minLength).should.equal(12);
done();
});
it("should be able to get correct params by params()", function(done) {
str = rStr();
should.exist(str.params) && str.params.should.be.a.Function;
var params = str.params();
params.should.be.an.Object;
should(params.include).equal("aA#!");
should(params.maxLength).equal(32);
should(params.minLength).equal(16);
str = rStr(48, "aA");
params = str.params();
params.should.be.an.Object;
should(params.include).equal("aA");
should(params.maxLength).equal(48);
should(params.minLength).equal(16);
done();
});
it("should be able to set valid params by params()", function(done) {
str = rStr();
should.exist(str.params) && str.params.should.be.a.Function;
var newParams = {
include: "a#",
maxLength: 48
};
var afterSetParams = str.params(newParams);
afterSetParams.should.be.an.Object;
should(afterSetParams.include).equal(newParams.include);
should(afterSetParams.maxLength).equal(newParams.maxLength);
should(afterSetParams.minLength).equal(16);
done();
});
it("should generate a new object each time calling rStr()", function(done) {
str = rStr("aA");
str1 = rStr(12, 64, "#!");
should(str.include).not.equal(str1.include);
should(str.maxLength).not.equal(str1.maxLength);
should(str.minLength).not.equal(str1.minLength);
done();
});
});
describe("Advance tests", function() {
var str, rMaxLength, rMinLength, rInclude;
before(function() {
rMaxLength = Math.floor(Math.random() * 64) + 1;
rMinLength = rMaxLength - 5;
if (rMaxLength < rMinLength) {
var tmp = rMaxLength;
rMaxLength = rMinLength;
rMinLength = tmp;
}
rInclude = "";
rInclude += Math.random() > 0.5 ? "a" : "";
rInclude += Math.random() > 0.5 ? "A" : "";
rInclude += Math.random() > 0.5 ? "#" : "";
rInclude += Math.random() > 0.5 ? "!" : "";
str = rStr(rMinLength, rMaxLength, rInclude);
});
it("should expose function generate()", function(done) {
should.exist(str.generate) && str.generate.should.be.a.Function;
done();
});
it("should generate string with given params, in three different ways", function(done) {
var genStart = false
, genEnd = false;
for (var i = 0, result; i < 333; i++) {
result = str.generate();
result.should.be.a.String;
should(result.length).not.greaterThan(rMaxLength).and.not.lessThan(rMinLength);
utils.isValidString(result, rInclude).should.be.true;
if (result.length === rMinLength) {
genStart = true;
} else if (result.length === rMaxLength) {
genEnd = true;
}
}
var ret = str.generate(333);
should(ret).be.an.Array && should(ret.length).equal(333);
for (var i = 0; i < ret.length; i ++) {
should(ret[i]).be.a.String;
should(ret[i].length).not.greaterThan(rMaxLength).and.not.lessThan(rMinLength);
utils.isValidString(ret[i], rInclude).should.be.true;
if (ret[i].length === rMinLength) {
genStart = true;
} else if (ret[i].length === rMaxLength) {
genEnd = true;
}
}
str.generate(333, function(err, data) {
should(data).be.an.Array && should(data.length).equal(333);
for (var i = 0; i < data.length; i ++) {
should(data[i]).be.a.String;
should(data[i].length).not.greaterThan(rMaxLength).and.not.lessThan(rMinLength);
utils.isValidString(data[i], rInclude).should.be.true;
if (data[i].length === rMinLength) {
genStart = true;
} else if (data[i].length === rMaxLength) {
genEnd = true;
}
}
if (genStart && genEnd) {
done();
}
});
});
});
});
}();