aboutsummaryrefslogtreecommitdiff
path: root/test/lorem.unit.js
diff options
context:
space:
mode:
authorMatthew Bergman <[email protected]>2013-01-08 09:35:00 -0800
committerMatthew Bergman <[email protected]>2013-01-08 09:35:00 -0800
commitfd79022a8cb6d0d3adc50e8af96a5e2ae93d8e53 (patch)
tree28c0bd9453cf4e6d273b97bfe2ce53cab11d3330 /test/lorem.unit.js
parent1e4fcf794181b8d8c9286ee1890a903199f81847 (diff)
parent19d0e99ebec18bab6047bf944c07fc472fd9773a (diff)
downloadfaker-fd79022a8cb6d0d3adc50e8af96a5e2ae93d8e53.tar.xz
faker-fd79022a8cb6d0d3adc50e8af96a5e2ae93d8e53.zip
Merge pull request #37 from BryanDonovan/main
Refactored with 100% test coverage
Diffstat (limited to 'test/lorem.unit.js')
-rw-r--r--test/lorem.unit.js165
1 files changed, 165 insertions, 0 deletions
diff --git a/test/lorem.unit.js b/test/lorem.unit.js
new file mode 100644
index 00000000..4082bdde
--- /dev/null
+++ b/test/lorem.unit.js
@@ -0,0 +1,165 @@
+if (typeof module !== 'undefined') {
+ var assert = require('assert');
+ var sinon = require('sinon');
+ var Faker = require('../index');
+}
+
+describe("lorem.js", function () {
+ describe("words()", function () {
+ beforeEach(function () {
+ sinon.spy(Faker.Helpers, 'shuffle');
+ sinon.spy(Faker.definitions, 'lorem');
+ });
+
+ afterEach(function () {
+ Faker.Helpers.shuffle.restore();
+ Faker.definitions.lorem.restore();
+ });
+
+ context("when no 'num' param passed in", function () {
+ it("returns three words", function () {
+ var words = Faker.Lorem.words();
+
+ assert.ok(Array.isArray(words));
+ assert.equal(words.length, 3);
+ assert.ok(Faker.Helpers.shuffle.called);
+ assert.ok(Faker.definitions.lorem.called);
+ });
+ });
+
+ context("when 'num' param passed in", function () {
+ it("returns requested number of words", function () {
+ var words = Faker.Lorem.words(7);
+
+ assert.ok(Array.isArray(words));
+ assert.equal(words.length, 7);
+ });
+ });
+ });
+
+ describe("sentence()", function () {
+ context("when no 'wordCount' param passed in", function () {
+ it("returns a string of at least three words", function () {
+ sinon.spy(Faker.Lorem, 'words');
+ sinon.stub(Faker.random, 'number').returns(2);
+ var sentence = Faker.Lorem.sentence();
+
+ assert.ok(typeof sentence === 'string');
+ var parts = sentence.split(' ');
+ assert.equal(parts.length, 5); // default 3 plus stubbed 2.
+ assert.ok(Faker.Lorem.words.calledWith(5));
+
+ Faker.Lorem.words.restore();
+ Faker.random.number.restore();
+ });
+ });
+
+ context("when 'wordCount' param passed in", function () {
+ it("returns a string of at least the requested number of words", function () {
+ sinon.spy(Faker.Lorem, 'words');
+ sinon.stub(Faker.random, 'number').returns(2);
+ var sentence = Faker.Lorem.sentence(10);
+
+ assert.ok(typeof sentence === 'string');
+ var parts = sentence.split(' ');
+ assert.equal(parts.length, 12); // requested 10 plus stubbed 2.
+ assert.ok(Faker.Lorem.words.calledWith(12));
+
+ Faker.Lorem.words.restore();
+ Faker.random.number.restore();
+ });
+ });
+ });
+
+ describe("sentences()", function () {
+ context("when no 'sentenceCount' param passed in", function () {
+ it("returns newline-separated string of three sentences", function () {
+ sinon.spy(Faker.Lorem, 'sentence');
+ var sentences = Faker.Lorem.sentences();
+
+ assert.ok(typeof sentences === 'string');
+ var parts = sentences.split('\n');
+ assert.equal(parts.length, 3);
+ assert.ok(Faker.Lorem.sentence.calledThrice);
+
+ Faker.Lorem.sentence.restore();
+ });
+ });
+
+ context("when 'sentenceCount' param passed in", function () {
+ it("returns newline-separated string of requested number of sentences", function () {
+ sinon.spy(Faker.Lorem, 'sentence');
+ var sentences = Faker.Lorem.sentences(5);
+
+ assert.ok(typeof sentences === 'string');
+ var parts = sentences.split('\n');
+ assert.equal(parts.length, 5);
+
+ Faker.Lorem.sentence.restore();
+ });
+ });
+ });
+
+ describe("paragraph()", function () {
+ context("when no 'wordCount' param passed in", function () {
+ it("returns a string of at least three sentences", function () {
+ sinon.spy(Faker.Lorem, 'sentences');
+ sinon.stub(Faker.random, 'number').returns(2);
+ var paragraph = Faker.Lorem.paragraph();
+
+ assert.ok(typeof paragraph === 'string');
+ var parts = paragraph.split('\n');
+ assert.equal(parts.length, 5); // default 3 plus stubbed 2.
+ assert.ok(Faker.Lorem.sentences.calledWith(5));
+
+ Faker.Lorem.sentences.restore();
+ Faker.random.number.restore();
+ });
+ });
+
+ context("when 'wordCount' param passed in", function () {
+ it("returns a string of at least the requested number of sentences", function () {
+ sinon.spy(Faker.Lorem, 'sentences');
+ sinon.stub(Faker.random, 'number').returns(2);
+ var paragraph = Faker.Lorem.paragraph(10);
+
+ assert.ok(typeof paragraph === 'string');
+ var parts = paragraph.split('\n');
+ assert.equal(parts.length, 12); // requested 10 plus stubbed 2.
+ assert.ok(Faker.Lorem.sentences.calledWith(12));
+
+ Faker.Lorem.sentences.restore();
+ Faker.random.number.restore();
+ });
+ });
+ });
+
+ describe("paragraphs()", function () {
+ context("when no 'paragraphCount' param passed in", function () {
+ it("returns newline-separated string of three paragraphs", function () {
+ sinon.spy(Faker.Lorem, 'paragraph');
+ var paragraphs = Faker.Lorem.paragraphs();
+
+ assert.ok(typeof paragraphs === 'string');
+ var parts = paragraphs.split('\n \r\t');
+ assert.equal(parts.length, 3);
+ assert.ok(Faker.Lorem.paragraph.calledThrice);
+
+ Faker.Lorem.paragraph.restore();
+ });
+ });
+
+ context("when 'paragraphCount' param passed in", function () {
+ it("returns newline-separated string of requested number of paragraphs", function () {
+ sinon.spy(Faker.Lorem, 'paragraph');
+ var paragraphs = Faker.Lorem.paragraphs(5);
+
+ assert.ok(typeof paragraphs === 'string');
+ var parts = paragraphs.split('\n \r\t');
+ assert.equal(parts.length, 5);
+
+ Faker.Lorem.paragraph.restore();
+ });
+ });
+ });
+});