UNPKG

mock-data

Version:

generate mock data (random string, number, date, ipv4, etc.)

191 lines (155 loc) 5.92 kB
+ function() { "use strict"; var should = require("should") , moment = require("moment"); var rDate = require("../../").date; describe("Test date", function() { var date, date1; describe("Basic tests", function() { it("should exist and is a function", function(done) { should.exist(rDate) && rDate.should.be.a.Function; done(); }); it("should be able to set params by construct and get params directly", function(done) { date = rDate(); (date.start).should.equal(1980); (date.end).should.equal(2015); should(date.format).be.null; (date.isUTC).should.equal(false); date = rDate(true); (date.start).should.equal(1980); (date.end).should.equal(2015); should(date.format).be.null; (date.isUTC).should.equal(true); date = rDate(2000, 2010); (date.start).should.equal(2000); (date.end).should.equal(2010); should(date.format).be.null; (date.isUTC).should.equal(false); date = rDate(1889, 2030, "YYYY"); (date.start).should.equal(1889); (date.end).should.equal(2030); (date.format).should.equal("YYYY"); (date.isUTC).should.equal(false); date = rDate(1880, 2032, "YYYY-MM", true); (date.start).should.equal(1880); (date.end).should.equal(2032); (date.format).should.equal("YYYY-MM"); (date.isUTC).should.equal(true); date = rDate({start: 1879, end: 2013}); (date.start).should.equal(1879); (date.end).should.equal(2013); should.not.exist(date.format); (date.isUTC).should.equal(false); date = rDate({start: 1880, end: 2032, format: "YYYY-DD", isUTC: true}); (date.start).should.equal(1880); (date.end).should.equal(2032); (date.format).should.equal("YYYY-DD"); (date.isUTC).should.equal(true); done(); }); it("should be able to get correct params by params()", function(done) { date = rDate(); should.exist(date.params) && date.params.should.be.a.Function; var params = date.params(); params.should.be.an.Object; should(params.start).equal(1980); should(params.end).equal(2015); should(params.format).be.null; should(params.isUTC).equal(false); date = rDate(2010, 2013, "YYYY/MM"); params = date.params(); params.should.be.an.Object; should(params.start).equal(2010); should(params.end).equal(2013); should(params.format).equal("YYYY/MM"); should(params.isUTC).equal(false); done(); }); it("should be able to set valid params by params()", function(done) { date = rDate(); should.exist(date.params) && date.params.should.be.a.Function; var newParams = { start : 1989, end : 2012, format: "MMMM Do YYYY, h:mm:ss a", isUTC : true }; var afterSetParams = date.params(newParams); afterSetParams.should.be.an.Object; should(afterSetParams.start).equal(newParams.start); should(afterSetParams.end).equal(newParams.end); should(afterSetParams.isUTC).equal(newParams.isUTC); should(afterSetParams.format).equal(newParams.format); done(); }); it("should generate a new object each time calling rDate()", function(done) { date = rDate(true); date1 = rDate(1920, 2008, "YYYY"); should(date.start).not.equal(date1.start); should(date.end).not.equal(date1.end); should(date.isUTC).not.equal(date1.isUTC); should(date.format).not.equal(date1.format); done(); }); }); describe("Advance tests", function() { var rStart, rEnd; before(function() { rStart = Math.floor(Math.random() * 2000) + 1; rEnd = rStart + 3; date = rDate(rStart, rEnd, "YYYY"); }); it("should expose function generate()", function(done) { should.exist(date.generate) && date.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, year = 0, result; i < 33; i ++) { result = date.generate(); result.should.be.a.String; should(result.length).equal(4); year = parseInt(result); should(year).not.be.greaterThan(rEnd).and.not.be.lessThan(rStart); if (year === rStart) { genStart = true; } else if (year === rEnd) { genEnd = true; } } var ret = date.generate(33); should(ret).be.an.Array && should(ret.length).equal(33); for (var i = 0, year = 0; i < ret.length; i ++) { should(ret[i]).be.a.String; should(ret[i].length).equal(4); year = parseInt(ret[i]); should(year).not.be.greaterThan(rEnd).and.not.be.lessThan(rStart); if (year === rStart) { genStart = true; } else if (year === rEnd) { genEnd = true; } } date.generate(33, function(err, data) { should(data).be.an.Array && should(data.length).equal(33); for (var i = 0, year = 0; i < data.length; i ++) { should(data[i]).be.a.String; should(data[i].length).equal(4); year = parseInt(data[i]); should(year).not.be.greaterThan(rEnd).and.not.be.lessThan(rStart); if (year === rStart) { genStart = true; } else if (year === rEnd) { genEnd = true; } } if (genStart && genEnd) { done(); } }); }); }); }); }();