Skip to content

Commit 4fb1ac9

Browse files
committed
fix signature.now and add signature tests
1 parent 3cf3725 commit 4fb1ac9

2 files changed

Lines changed: 39 additions & 1 deletion

File tree

generate/input/descriptor.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1158,7 +1158,10 @@
11581158
"functions": {
11591159
"git_signature_new": {
11601160
"isAsync": false
1161-
}
1161+
},
1162+
"git_signature_now": {
1163+
"isAsync": false
1164+
}
11621165
}
11631166
},
11641167
"smart": {

test/tests/signature.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
var assert = require("assert");
2+
3+
describe("Signature", function() {
4+
5+
var Signature = require("../../lib/signature");
6+
var name = "Bob Gnarley";
7+
var email = "gnarlee@bob.net";
8+
var arbitraryDate = 123456789;
9+
var timezoneOffset = 60;
10+
11+
it("can be created at an arbitrary time", function() {
12+
var create = Signature.create;
13+
var signature = create(name, email, arbitraryDate, timezoneOffset);
14+
15+
assert.equal(signature.name(), name);
16+
assert.equal(signature.email(), email);
17+
assert.equal(signature.when().time(), arbitraryDate);
18+
assert.equal(signature.when().offset(), 60);
19+
20+
});
21+
22+
it("can be created now", function() {
23+
24+
var signature = Signature.now(name, email);
25+
var now = new Date();
26+
var when = signature.when();
27+
var diff = Math.abs(when.time() - now/1000);
28+
assert.equal(signature.name(), name);
29+
assert.equal(signature.email(), email);
30+
assert(diff <= 1);
31+
32+
// libgit2 does its timezone offsets backwards from javascript
33+
assert.equal(when.offset(), -now.getTimezoneOffset());
34+
});
35+
});

0 commit comments

Comments
 (0)