Skip to content

Commit b09fa02

Browse files
committed
Add test for struct strarray in checkout
1 parent 5047566 commit b09fa02

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

test/tests/checkout.js

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
var assert = require("assert");
22
var path = require("path");
3+
var fse = require("fs-extra");
34
var local = path.join.bind(path, __dirname);
45

56
describe("Checkout", function() {
67
var NodeGit = require("../../");
78
var Repository = NodeGit.Repository;
89
var Checkout = NodeGit.Checkout;
910

11+
var readMeName = "README.md";
12+
var packageJsonName = "package.json";
1013
var packageJsonOid = "0fa56e90e096a4c24c785206b826ab914ea3de1e";
1114
var reposPath = local("../repos/workdir");
15+
var readMePath = local("../repos/workdir/" + readMeName);
16+
var packageJsonPath = local("../repos/workdir/" + packageJsonName);
1217

1318
beforeEach(function() {
1419
var test = this;
@@ -33,6 +38,42 @@ describe("Checkout", function() {
3338
});
3439
});
3540

41+
it("can force checkout a single file", function() {
42+
var test = this;
43+
44+
var packageContent = fse.readFileSync(packageJsonPath, "utf-8");
45+
var readmeContent = fse.readFileSync(readMePath, "utf-8");
46+
47+
assert.notEqual(packageContent, "");
48+
assert.notEqual(readmeContent, "");
49+
50+
fse.outputFileSync(readMePath, "");
51+
fse.outputFileSync(packageJsonPath, "");
52+
53+
var opts = {
54+
checkoutStrategy: Checkout.STRATEGY.FORCE,
55+
paths: packageJsonName
56+
};
57+
58+
return Checkout.head(test.repository, opts)
59+
.then(function() {
60+
var resetPackageContent = fse.readFileSync(packageJsonPath, "utf-8");
61+
var resetReadmeContent = fse.readFileSync(readMePath, "utf-8");
62+
63+
assert.equal(resetPackageContent, packageContent);
64+
assert.equal(resetReadmeContent, "");
65+
66+
var resetOpts = {
67+
checkoutStrategy: Checkout.STRATEGY.FORCE
68+
};
69+
70+
return Checkout.head(test.repository, resetOpts);
71+
}).then(function() {
72+
var resetContent = fse.readFileSync(readMePath, "utf-8");
73+
assert.equal(resetContent, readmeContent);
74+
});
75+
});
76+
3677
it("can checkout by tree", function() {
3778
var test = this;
3879

0 commit comments

Comments
 (0)