[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/nodegit/nodegit/v0.1.4/test/commit.js [Back]  [Original]

var git = require('../'),
    rimraf = require('rimraf'),
    fs = require( 'fs' );

var historyCountKnownSHA = 'fce88902e66c72b5b93e75bdb5ae717038b221f6';

exports.message = function(test) {
  test.expect(2);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var message = commit.message();
      test.equals(error, null, 'There should be no error');
      test.equals(message, 'Update README.md', 'Message should match expected value');
      test.done();
    });
  });
};

exports.sha = function(test) {
  test.expect(2);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var sha = commit.sha();
      test.equals(error, null, 'There should be no error');
      test.equals(sha, historyCountKnownSHA, 'SHA should match expected value');
      test.done();
    });
  });
};

exports.time = function(test) {
  test.expect(2);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var time = commit.timeMs();
      test.equals(error, null, 'There should be no error');
      test.equals(time, 1362012884000, 'Time should match expected value');
      test.done();
    });
  });
};

exports.date = function(test) {
  test.expect(2);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var date = commit.date();
      test.equals(error, null, 'There should be no error');
      test.equals(date.getTime(), 1362012884000, 'Date should match expected value');
      test.done();
    });
  });
};

exports.offset = function(test) {
  test.expect(2);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var offset = commit.offset();
      test.equals(error, null, 'There should be no error');
      test.equals(offset, 780, 'Offset should match expected value');
      test.done();
    });
  });
};

exports.author = function(test) {
  test.expect(2);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var author = commit.author();
      test.equals(error, null, 'There should be no error');
      test.notEqual(author, null, 'Author should not be null');
      test.done();
    });
  });
};

exports.authorName = function(test) {
  test.expect(1);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var author = commit.author();
      var name = author.name();
      test.equals(name, 'Michael Robinson', 'The author name should match expected value');
      test.done();
    });
  });
};

exports.authorEmail = function(test) {
  test.expect(1);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var author = commit.author();
      var email = author.email();
      test.equals(email, 'mike@panmedia.co.nz', 'The author email should match expected value');
      test.done();
    });
  });
};

exports.committerName = function(test) {
  test.expect(1);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var committer = commit.committer();
      var name = committer.name();
      test.equals(name, 'Michael Robinson', 'The author name should match expected value');
      test.done();
    });
  });
};

exports.committerEmail = function(test) {
  test.expect(1);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      var committer = commit.committer();
      var email = committer.email();
      test.equals(email, 'mike@panmedia.co.nz', 'The committer email should match expected value');
      test.done();
    });
  });
};

/**
 * Test that improper commit ID's result in an error message
 */
exports.improperCommitId = function(test) {
  test.expect(1);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit('not a proper commit sha', function(error, commit) {
      test.notEqual(error, null, 'Error should occur');
      test.done();
    });
  });
};

/**
 * Test that retreiving walking a given commit's history works as expected.
 */
exports.history = function(test) {
  test.expect(4);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      test.equals(null, error, 'Getting latest branch commit should not error');
      var historyCount = 0;
      var expectedHistoryCount = 364;
      commit.history().on('commit', function(commit) {
        historyCount++;
      }).on('end', function(commits) {
        test.equals(null, error, 'There should be no errors');
        test.equals(historyCount, expectedHistoryCount);
        test.equals(commits.length, expectedHistoryCount);
        test.done();
      }).on('error', function(error) {
        test.equals(null, error, 'There should be no errors');
        test.ok(false, 'There should be no errors');
      }).start();
    });
  });
};

/**
 * Test that retreiving master branch's HEAD commit works as expected.
 */
exports.masterHead = function(test) {
  test.expect(1);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getBranch('master', function(error, branch) {
      var sha = branch.sha();
      repository.getCommit(sha, function(error, commit) {
        test.equals(error, null, 'Getting latest branch commit should not error');
        test.done();
      });
    });
  });
};

/**
 * Test that retreiving parent works as expected.
 *
 * @param  {Object} test
 */
exports.parents = function(test) {
  test.expect(3);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      commit.getParents(function(error, parents) {
        test.equals(parents.length, 1, 'Commit should have exactly one parent');
        var sha = parents[0].sha();
        test.equals(error, null, 'Getting parent SHA should not error');
        test.equals(sha, 'ecfd36c80a3e9081f200dfda2391acadb56dac27', 'Parent SHA should match expected value');
        test.done();
      });
    });
  });
};

/**
 * Test that retrieving and walking a commit's tree works as expected.
 */
exports.tree = function(test) {
  test.expect(2);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      test.equals(error, null, 'Getting latest branch commit should not error');

      var commitTreeEntryCount = 0;
      var expectedCommitTreeEntryCount = 198;
      commit.getTree(function(error, tree) {
        tree.walk().on('entry', function(entry) {
          commitTreeEntryCount++;
        }).on('end', function(error, entries) {
          test.equals(commitTreeEntryCount, expectedCommitTreeEntryCount, 'Commit tree entry count does not match expected');
          test.done();
        }).start();
      });
    });
  });
};

/**
 * Test that getDiff works as expected.
 */
exports.getDiff = function(test) {
  test.expect(1);
  git.Repo.open('repos/workdir/.git', function(error, repository) {
    repository.getCommit(historyCountKnownSHA, function(error, commit) {
      commit.getDiff(function(error, diff) {
        test.equals(diff.length, 1, 'Should be one item in parents diff trees');
        test.done();
      });
    });
  });
};

process.on('uncaughtException', function(err) {
  console.log(err.stack);
});


Web Proxy Viewer  |  New URL  |  Original Page