@@ -488,7 +488,7 @@ describe("Commit", function() {
488488 return repo . getHeadCommit ( ) ;
489489 } )
490490 . then ( function ( headCommit ) {
491- message = headCommit . message ( ) . trim ( ) ;
491+ message = headCommit . message ( ) ;
492492 parents = headCommit . parents ( ) ;
493493
494494 return headCommit . amendWithSignature (
@@ -512,11 +512,99 @@ describe("Commit", function() {
512512 } )
513513 . then ( function ( signatureInfo ) {
514514 assert . equal ( signatureInfo . signature , signature ) ;
515- assert . equal ( commit . message ( ) . trim ( ) , message ) ;
515+ assert . equal ( commit . message ( ) , message ) ;
516516 assert . deepEqual ( commit . parents ( ) , parents ) ;
517517 } ) ;
518518 } ) ;
519519
520+ it ( "amending with signature respects overridden arguments" , function ( ) {
521+ const signature = "-----BEGIN PGP SIGNATURE-----\n" +
522+ "\n" +
523+ "iQJHBAEBCAAxFiEEKdxGpJ93wnkLaBKfURjJKedOfEMFAlxPKUYTHHN0ZXZla0Bh\n" +
524+ "eG9zb2Z0LmNvbQAKCRBRGMkp5058Q3vcD/0Uf6P68g98Kbvsgjg/aidM1ujruXaw\n" +
525+ "X5WSsCAw+wWGICOj0n+KBnmQruI4HSFz3zykEshuOpcBv1X/+huwDeB/hBqonCU8\n" +
526+ "QdexCdWR70YbT1bufesUwV9v1qwE4WOmFxWXgwh55K0wDRkc0u2aLcwrJkIEEVfs\n" +
527+ "HqZyFzU4kwbGekY/m7d1DsBhWyKEGW9/25WMYmjWOWOiaFjeBaHLlxiEM8KGnMLH\n" +
528+ "wx37NuFuaABgi23AAcBGdeWy04TEuU4S51+bHM3RotrZ2cryW2lEbkkXodhIJcq0\n" +
529+ "RgrStCbvR0ehnOPdYSiRbxK8JNLZuNjHlK2g7wVi+C83vwMQuhU4H6OlYHGVr664\n" +
530+ "4YzL83FdIo7wiMOFd2OOMLlCfHgTun60FvjCs4WHjrwH1fQl287FRPLa/4olBSQP\n" +
531+ "yUXJaZdxm4cB4L/1pmbb/J/XUiOio3MpaN3GFm2hZloUlag1uPDBtCxTl5odvj4a\n" +
532+ "GOmTBWznXxF/zrKnQVSvv+EccNxYFc0VVjAxGgNqPzIxDAKtw1lE5pbBkFpFpNHz\n" +
533+ "StmwZkP9QIJY4hJYQfM+pzHLe8xjexL+Kh/TrYXgY1m/4vJe0HJSsnRnaR8Yfqhh\n" +
534+ "LReqo94VHRYXR0rZQv4py0D9TrWaI8xHLve6ewhLPNRzyaI9fNrinbcPYZZOWnRi\n" +
535+ "ekgUBx+BX6nJOw==\n" +
536+ "=4Hy5\n" +
537+ "-----END PGP SIGNATURE-----" ;
538+
539+ function onSignature ( dataToSign ) {
540+ return new Promise ( function ( resolve ) {
541+ return resolve ( signature ) ;
542+ } ) ;
543+ }
544+
545+ var repo ;
546+ var oid ;
547+ var commit ;
548+ var message ;
549+ var parents ;
550+ var commitTree ;
551+
552+ var author = NodeGit . Signature . create (
553+ "Scooby Doo" ,
554+ "scoob@mystery.com" ,
555+ 123456789 ,
556+ 60
557+ ) ;
558+ var committer = NodeGit . Signature . create (
559+ "Shaggy Rogers" ,
560+ "shaggy@mystery.com" ,
561+ 987654321 ,
562+ 90
563+ ) ;
564+ var tree = Oid . fromString ( "f4661419a6fbbe865f78644fec722c023ce4b65f" ) ;
565+
566+ return NodeGit . Repository . open ( reposPath )
567+ . then ( function ( repoResult ) {
568+ repo = repoResult ;
569+ return repo . getHeadCommit ( ) ;
570+ } )
571+ . then ( function ( headCommit ) {
572+ message = headCommit . message ( ) ;
573+ parents = headCommit . parents ( ) ;
574+
575+ return headCommit . amendWithSignature (
576+ null ,
577+ author ,
578+ committer ,
579+ null ,
580+ null ,
581+ tree ,
582+ "gpgsig" ,
583+ onSignature
584+ ) ;
585+ } )
586+ . then ( function ( oidResult ) {
587+ oid = oidResult ;
588+ return NodeGit . Commit . lookup ( repo , oid ) ;
589+ } )
590+ . then ( function ( commitResult ) {
591+ commit = commitResult ;
592+ return commit . getTree ( ) ;
593+ } )
594+ . then ( function ( commitTreeResult ) {
595+ commitTree = commitTreeResult ;
596+ return commit . getSignature ( "gpgsig" ) ;
597+ } )
598+ . then ( function ( signatureInfo ) {
599+ assert . equal ( signatureInfo . signature , signature ) ;
600+ assert . equal ( commit . message ( ) , message ) ;
601+ assert . deepEqual ( commit . parents ( ) , parents ) ;
602+ assert . deepEqual ( commitTree . id ( ) , tree ) ;
603+ assert . deepEqual ( commit . author ( ) , author ) ;
604+ assert . deepEqual ( commit . committer ( ) , committer ) ;
605+ } ) ;
606+ } ) ;
607+
520608 it ( "has an owner" , function ( ) {
521609 var owner = this . commit . owner ( ) ;
522610 assert . ok ( owner instanceof Repository ) ;
0 commit comments