]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Add tests for duration.add and .remove 734/head
authorChristopher Brown <io@henrian.com>
Sat, 1 Jun 2013 13:31:10 +0000 (08:31 -0500)
committerChristopher Brown <io@henrian.com>
Sat, 1 Jun 2013 13:31:10 +0000 (08:31 -0500)
test/moment/duration.js

index d55fd355ce2f8031d02f30f03af70dc37b53a7f0..eee2b59e1f346bce75880f1d73ae6446ce7a7b91 100644 (file)
@@ -353,6 +353,33 @@ exports.duration = {
         test.ok(moment.isDuration(moment.duration(12345678)), "correctly says true");
         test.ok(!moment.isDuration(moment()), "moment object is not a duration");
         test.ok(!moment.isDuration({milliseconds: 1}), "plain object is not a duration");
+        test.done();
+    },
+
+    "add" : function(test) {
+        test.expect(4);
+
+        var d = moment.duration({months: 4, weeks: 3, days: 2});
+        // for some reason, d._data._months does not get updated; use d._months instead.
+        test.equal(d.add(1, 'month')._months, 5, 'Add months');
+        test.equal(d.add(5, 'days')._days, 28, 'Add days');
+        test.equal(d.add(10000)._milliseconds, 10000, 'Add milliseconds');
+        test.equal(d.add({h: 23, m: 59})._milliseconds, 23*60*60*1000 + 59*60*1000 + 10000, 'Add hour:minute');
+
+        test.done();
+    },
+
+    "subtract" : function(test) {
+        test.expect(4);
+
+        var d = moment.duration({months: 2, weeks: 2, days: 0, hours: 5});
+        // for some reason, d._data._months does not get updated; use d._months instead.
+        test.equal(d.subtract(1, 'months')._months, 1, 'Subtract months');
+        test.equal(d.subtract(14, 'days')._days, 0, 'Subtract days');
+        test.equal(d.subtract(10000)._milliseconds, 5*60*60*1000 - 10000, 'Subtract milliseconds');
+        test.equal(d.subtract({h: 1, m: 59})._milliseconds, 3*60*60*1000 + 1*60*1000 - 10000, 'Subtract hour:minute');
+
         test.done();
     }
+
 };