[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/nodejs-experiments/nodegit/emscripten/test/tree.js [Back]  [Original]

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

var sha = '5716e9757886eaf38d51c86b192258c960d9cfea';
var fileCount = 512; // Number of blob & blob executabless

exports.walk = function(test) {
  test.expect(515);

  git.Repo.open('repos/workdir/.git', function(error, repo) {
    repo.getCommit(sha, function(error, commit) {
      var entryCount = 0;
      commit.getTree(function(error, tree) {
        tree.walk().on('entry', function(index, entry) {
            test.equals(error, null, 'There should be no error');
            entryCount++;
        }).on('end', function(errors, entries) {
          test.equals(errors, null, 'There should be no error');
          test.equals(entryCount, fileCount, 'The manual tree entry count and the "end" tree entry count do not match');
          test.equals(entries.length, fileCount, 'The end entries count and the manual entry count do not match');
          test.done();
        }).start();
      });
    });
  });
};

exports.insert = function(test) {
  test.expect(1);

  git.Repo.open('repos/workdir/.git', function(error, repo) {
    repo.getCommit(sha, function(error, commit) {
      commit.getTree(function(error, tree) {
        var text = "this is a file\n",
            buffer = new Buffer(text);
        repo.createBlobFromBuffer(buffer, function(error, blobId) {
          var builder = tree.builder();
          builder.insert(path.join("lib", "baz", "bar.txt"), blobId, git.TreeEntry.FileMode.Blob);
          builder.write(function(error, treeId) {
            repo.getTree(treeId, function(error, tree) {
              var author = git.Signature.create("Scott Chacon", "schacon@gmail.com", 123456789, 60),
                  committer = git.Signature.create("Scott A Chacon", "scott@github.com", 987654321, 90);
              repo.createCommit(null, author, committer, "message", tree, [commit], function(error, commitId) {
                repo.getCommit(commitId, function(error, commit) {
                  commit.getTree(function(error, tree) {
                    tree.getEntry('lib/baz/bar.txt', function(error, entry) {
                      entry.getBlob(function(error, blob) {
                        test.equals(blob.toString(), text);
                        test.done();
                      });
                    });
                  });
                });
              });
            });
          });
        });
      });
    });
  });
};

Web Proxy Viewer  |  New URL  |  Original Page