]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Write duration-invalid tests
authorKunal Marwaha <marwahaha@berkeley.edu>
Mon, 5 Dec 2016 07:15:49 +0000 (02:15 -0500)
committerIskren Chernev <iskren.chernev@gmail.com>
Thu, 2 Mar 2017 08:45:50 +0000 (10:45 +0200)
src/test/moment/duration_invalid.js [new file with mode: 0644]

diff --git a/src/test/moment/duration_invalid.js b/src/test/moment/duration_invalid.js
new file mode 100644 (file)
index 0000000..2dbe9cc
--- /dev/null
@@ -0,0 +1,67 @@
+import { module, test } from '../qunit';
+import moment from '../../moment';
+
+module('invalid');
+
+test('invalid', function (assert) {
+    var m = moment.duration(NaN); // should be invalid
+    assert.equal(m.isValid(), false);
+    assert.ok(isNaN(m.valueOf()));
+});
+
+// test('invalid with existing flag', function (assert) {
+//     var m = moment.duration({invalidMonth : 'whatchamacallit'});
+//     assert.equal(m.isValid(), false);
+//     assert.ok(isNaN(m.valueOf()));
+// });
+
+test('invalid operations', function (assert) {
+    var invalids = [
+            moment.duration(NaN)
+            // moment.duration({invalidMonth : 'whatchamacallit'})
+        ],
+        i,
+        invalid,
+        valid = moment.duration();
+
+    for (i = 0; i < invalids.length; ++i) {
+        invalid = invalids[i];
+
+        assert.ok(!invalid.add(5, 'hours').isValid(), 'invalid.add is invalid');
+        assert.ok(!invalid.subtract(30, 'days').isValid(), 'invalid.subtract is invalid');
+        assert.ok(!invalid.abs().isValid(), 'invalid.abs is invalid');
+        assert.ok(isNaN(invalid.as('years')), 'invalid.as is NaN');
+        assert.ok(isNaN(invalid.asMilliseconds()), 'invalid.asMilliseconds is NaN');
+        assert.ok(isNaN(invalid.asSeconds()), 'invalid.asSeconds is NaN');
+        assert.ok(isNaN(invalid.asMinutes()), 'invalid.asMinutes is NaN');
+        assert.ok(isNaN(invalid.asHours()), 'invalid.asHours is NaN');
+        assert.ok(isNaN(invalid.asDays()), 'invalid.asDays is NaN');
+        assert.ok(isNaN(invalid.asWeeks()), 'invalid.asWeeks is NaN');
+        assert.ok(isNaN(invalid.asMonths()), 'invalid.asMonths is NaN');
+        assert.ok(isNaN(invalid.asYears()), 'invalid.asYears is NaN');
+        assert.ok(isNaN(invalid.valueOf()), 'invalid.valueOf is NaN');
+        assert.ok(isNaN(invalid.get('hours')), 'invalid.get is NaN');
+
+        assert.ok(isNaN(invalid.milliseconds()), 'invalid.milliseconds is NaN');
+        assert.ok(isNaN(invalid.seconds()), 'invalid.seconds is NaN');
+        assert.ok(isNaN(invalid.minutes()), 'invalid.minutes is NaN');
+        assert.ok(isNaN(invalid.hours()), 'invalid.hours is NaN');
+        assert.ok(isNaN(invalid.days()), 'invalid.days is NaN');
+        assert.ok(isNaN(invalid.weeks()), 'invalid.weeks is NaN');
+        assert.ok(isNaN(invalid.months()), 'invalid.months is NaN');
+        assert.ok(isNaN(invalid.years()), 'invalid.years is NaN');
+
+        assert.equal(invalid.humanize(),
+                     invalid.localeData().invalidDate(),
+                     'invalid.humanize is localized invalid duration string');
+        assert.equal(invalid.toISOString(),
+                     invalid.localeData().invalidDate(),
+                     'invalid.toISOString is localized invalid duration string');
+        assert.equal(invalid.toString(),
+                     invalid.localeData().invalidDate(),
+                     'invalid.toString is localized invalid duration string');
+        assert.equal(invalid.toJSON(), null, 'invalid.toJSON is null');
+        assert.equal(invalid.locale(), 'en');
+        assert.equal(invalid.localeData()._abbr, 'en');
+    }
+});