aboutsummaryrefslogtreecommitdiff
path: root/test/git.unit.js
diff options
context:
space:
mode:
authorTyler <[email protected]>2018-10-20 19:52:42 -0700
committerTyler <[email protected]>2018-10-20 19:52:42 -0700
commit7ded5dd46270454f7d6c0417c8ea406c7113feb1 (patch)
tree36181b5ff594a4e536fbecbe12da11e762b99029 /test/git.unit.js
parent031ad231ba6e88e8c5f40c5a8b62d2faa3fb7b61 (diff)
downloadfaker-7ded5dd46270454f7d6c0417c8ea406c7113feb1.tar.xz
faker-7ded5dd46270454f7d6c0417c8ea406c7113feb1.zip
merge with master
Diffstat (limited to 'test/git.unit.js')
-rw-r--r--test/git.unit.js125
1 files changed, 125 insertions, 0 deletions
diff --git a/test/git.unit.js b/test/git.unit.js
new file mode 100644
index 00000000..df86be0b
--- /dev/null
+++ b/test/git.unit.js
@@ -0,0 +1,125 @@
+if (typeof module !== 'undefined') {
+ var assert = require('assert');
+ var sinon = require('sinon');
+ var faker = require('../index');
+}
+
+describe("git.js", function() {
+ describe("branch()", function() {
+ beforeEach(function() {
+ sinon.spy(faker.hacker, 'noun');
+ sinon.spy(faker.hacker, 'verb');
+ });
+
+ afterEach(function() {
+ faker.hacker.noun.restore();
+ faker.hacker.verb.restore();
+ });
+
+ it("returns a branch with hacker noun and verb", function() {
+ faker.git.branch();
+
+ assert.ok(faker.hacker.noun.calledOnce);
+ assert.ok(faker.hacker.verb.calledOnce);
+ });
+ });
+
+ describe("commitEntry()", function() {
+ beforeEach(function() {
+ sinon.spy(faker.git, 'commitMessage');
+ sinon.spy(faker.git, 'commitSha');
+ sinon.spy(faker.internet, 'email');
+ sinon.spy(faker.name, 'firstName');
+ sinon.spy(faker.name, 'lastName');
+ sinon.spy(faker.random, 'number');
+ });
+
+ afterEach(function() {
+ faker.git.commitMessage.restore();
+ faker.git.commitSha.restore();
+ faker.internet.email.restore();
+ faker.name.firstName.restore();
+ faker.name.lastName.restore();
+ faker.random.number.restore();
+ });
+
+ it("returns merge entry at random", function() {
+ faker.git.commitEntry();
+
+ assert.ok(faker.random.number.called);
+ });
+
+ it("returns a commit entry with git commit message and sha", function() {
+ faker.git.commitEntry();
+
+ assert.ok(faker.git.commitMessage.calledOnce);
+ assert.ok(faker.git.commitSha.calledOnce);
+ });
+
+ it("returns a commit entry with internet email", function() {
+ faker.git.commitEntry();
+
+ assert.ok(faker.internet.email.calledOnce);
+ });
+
+ it("returns a commit entry with name first and last", function() {
+ faker.git.commitEntry();
+
+ assert.ok(faker.name.firstName.calledTwice);
+ assert.ok(faker.name.lastName.calledTwice);
+ });
+
+ context("with options['merge'] equal to true", function() {
+ beforeEach(function() {
+ sinon.spy(faker.git, 'shortSha');
+ });
+
+ afterEach(function() {
+ faker.git.shortSha.restore();
+ });
+
+ it("returns a commit entry with merge details", function() {
+ faker.git.commitEntry({ merge: true });
+
+ assert.ok(faker.git.shortSha.calledTwice);
+ });
+ });
+ });
+
+ describe("commitMessage()", function() {
+ beforeEach(function() {
+ sinon.spy(faker.hacker, 'verb');
+ sinon.spy(faker.hacker, 'adjective');
+ sinon.spy(faker.hacker, 'noun');
+ });
+
+ afterEach(function() {
+ faker.hacker.verb.restore();
+ faker.hacker.adjective.restore();
+ faker.hacker.noun.restore();
+ });
+
+ it("returns a commit message with hacker noun, adj and verb", function() {
+ faker.git.commitMessage();
+
+ assert.ok(faker.hacker.verb.calledOnce);
+ assert.ok(faker.hacker.adjective.calledOnce);
+ assert.ok(faker.hacker.noun.calledOnce);
+ });
+ });
+
+
+ describe("commitSha()", function() {
+ it("returns a random commit SHA", function() {
+ var commitSha = faker.git.commitSha();
+ assert.ok(commitSha.match(/^[a-f0-9]{40}$/));
+ });
+ });
+
+ describe("shortSha()", function() {
+ it("returns a random short SHA", function() {
+ var shortSha = faker.git.shortSha();
+ assert.ok(shortSha.match(/^[a-f0-9]{7}$/));
+ });
+ });
+});