UNPKG

d2-ui

Version:
183 lines (181 loc) 4.95 kB
var should = require('should'); var fetchGitData = require('../lib/fetchGitData'); var getOptions = require('../index').getOptions; describe("fetchGitData", function(){ beforeEach(function(){ process.env = {PATH: process.env.PATH}; }); it("should throw an error when no data is passed", function() { fetchGitData.should.throw(/fetchGitData requires a callback/); }); it('should throw an error when no git context is provided', function(done) { fetchGitData(undefined, function(err){ err.should.match(/No options passed/); done(); }); }); it("should throw an error if no head is provided", function(done) { fetchGitData({ }, function(err){ err.should.match(/You must provide the head/); done(); }); }); it("should throw an error if no head.id is provided", function(done) { fetchGitData({ head: {} }, function(err){ err.should.match(/You must provide the head.id/); done(); }); }); it("should return default values", function(done) { var options = fetchGitData({ head: { id: "COMMIT_HASH" } }, function(err, options){ options.should.eql({ "head": { "id": "COMMIT_HASH", "author_name": "Unknown Author", "author_email": "", "committer_name": "Unknown Committer", "committer_email": "", "message": "Unknown Commit Message" }, "branch": "", "remotes": [] }); done(); }); }); it("should override default values", function(done) { var options = fetchGitData({ "head": { "id": "COMMIT_HASH", "author_name": "MY AUTHOR", "author_email": "", "committer_name": "MY COMMITTER", "committer_email": "", "message": "MY COMMIT MESSAGE" }, "branch": "TEST", "remotes": [ { "name": "TEST", "url": "test-url" } ] }, function(err, options){ options.should.eql({ "head": { "id": "COMMIT_HASH", "author_name": "MY AUTHOR", "author_email": "", "committer_name": "MY COMMITTER", "committer_email": "", "message": "MY COMMIT MESSAGE" }, "branch": "TEST", "remotes": [ { "name": "TEST", "url": "test-url" } ] }); done(); }); }); it("should convert git.branch to a string", function(done) { fetchGitData({ "head": { "id": "COMMIT_HASH" }, "branch": { "covert": "to a string" } }, function(err, str){ str.branch.should.be.a("string"); fetchGitData({ "head": { "id": "COMMIT_HASH" }, "branch": ["convert", "to", "a", "string"] }, function(err, str){ str.branch.should.be.a("string"); done(); }); }); }); it("should convert git.remotes to an array", function(done) { fetchGitData({ "head": { "id": "COMMIT_HASH" }, "remotes": "convert from string to an array" }, function(err, arr){ arr.remotes.should.be.instanceof(Array); fetchGitData({ "head": { "id": "COMMIT_HASH" }, "remotes": { "convert": "from object to an array" } }, function(err, arr){ arr.remotes.should.be.instanceof(Array); done(); }); }); }); it("should save passed remotes", function(done) { fetchGitData({ "head": { "id": "COMMIT_HASH" }, "remotes": [ { "name": "test", "url": "https://my.test.url" } ] }, function(err, options){ options.should.eql({ "head": { "id": "COMMIT_HASH", "author_name": "Unknown Author", "author_email": "", "committer_name": "Unknown Committer", "committer_email": "", "message": "Unknown Commit Message" }, "branch": "", "remotes": [ { "name": "test", "url": "https://my.test.url" } ] }); done(); }); }); it("should execute git commands when a valid commit hash is given", function(done) { process.env.COVERALLS_GIT_COMMIT = "HEAD"; process.env.COVERALLS_GIT_BRANCH = "master"; getOptions(function(err, options){ options = options.git; options.head.should.be.a("object"); options.head.author_name.should.not.equal("Unknown Author"); options.head.committer_name.should.not.equal("Unknown Committer"); options.head.message.should.not.equal("Unknown Commit Message"); options.branch.should.be.a("string"); options.should.have.property("remotes"); options.remotes.should.be.instanceof(Array); options.remotes.length.should.be.above(0); done(); }); }); });