summaryrefslogtreecommitdiff
path: root/jstests/aggregation/expressions/date_to_string_on_null.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/aggregation/expressions/date_to_string_on_null.js')
-rw-r--r--jstests/aggregation/expressions/date_to_string_on_null.js107
1 files changed, 51 insertions, 56 deletions
diff --git a/jstests/aggregation/expressions/date_to_string_on_null.js b/jstests/aggregation/expressions/date_to_string_on_null.js
index e5b3ec50f1b..7b3bdc07538 100644
--- a/jstests/aggregation/expressions/date_to_string_on_null.js
+++ b/jstests/aggregation/expressions/date_to_string_on_null.js
@@ -2,76 +2,71 @@
* Tests for the $dateToString expression with the optional 'onNull' parameter.
*/
(function() {
- "use strict";
+"use strict";
- const onNullValue = ISODate("2017-07-04T11:56:02Z");
- const coll = db.date_to_string_on_null;
- coll.drop();
+const onNullValue = ISODate("2017-07-04T11:56:02Z");
+const coll = db.date_to_string_on_null;
+coll.drop();
- assert.writeOK(coll.insert({_id: 0}));
+assert.writeOK(coll.insert({_id: 0}));
- for (let nullishValue of[null, undefined, "$missing"]) {
- // Test that the 'onNull' value is returned when the 'date' is nullish.
- assert.eq([{_id: 0, date: onNullValue}],
- coll.aggregate({
- $project: {
- date: {
- $dateToString: {
- date: nullishValue,
- format: "%Y-%m-%d %H:%M:%S",
- onNull: onNullValue
- }
- }
- }
- })
- .toArray());
-
- // Test that null is returned when the 'timezone' is nullish, regardless of the 'onNull'
- // value.
- assert.eq([{_id: 0, date: null}],
- coll.aggregate({
- $project: {
- date: {
- $dateToString: {
- date: "2018-02-06T11:56:02Z",
- format: "%Y-%m-%d %H:%M:%S",
- timezone: nullishValue,
- onNull: onNullValue
- }
- }
- }
- })
- .toArray());
- }
+for (let nullishValue of [null, undefined, "$missing"]) {
+ // Test that the 'onNull' value is returned when the 'date' is nullish.
+ assert.eq(
+ [{_id: 0, date: onNullValue}],
+ coll.aggregate({
+ $project: {
+ date: {
+ $dateToString:
+ {date: nullishValue, format: "%Y-%m-%d %H:%M:%S", onNull: onNullValue}
+ }
+ }
+ })
+ .toArray());
- // Test that 'onNull' can be any type, not just an ISODate.
- for (let onNullValue of[{}, 5, "Not a date", null, undefined]) {
- assert.eq([{_id: 0, date: onNullValue}],
- coll.aggregate({
- $project: {
- date: {
- $dateToString: {
- date: "$missing",
- format: "%Y-%m-%d %H:%M:%S",
- onNull: onNullValue
- }
+ // Test that null is returned when the 'timezone' is nullish, regardless of the 'onNull'
+ // value.
+ assert.eq([{_id: 0, date: null}],
+ coll.aggregate({
+ $project: {
+ date: {
+ $dateToString: {
+ date: "2018-02-06T11:56:02Z",
+ format: "%Y-%m-%d %H:%M:%S",
+ timezone: nullishValue,
+ onNull: onNullValue
}
}
- })
- .toArray());
- }
+ }
+ })
+ .toArray());
+}
- // Test that 'onNull' can be missing, resulting in no output field when used within a $project
- // stage.
+// Test that 'onNull' can be any type, not just an ISODate.
+for (let onNullValue of [{}, 5, "Not a date", null, undefined]) {
assert.eq(
- [{_id: 0}],
+ [{_id: 0, date: onNullValue}],
coll.aggregate({
$project: {
date: {
$dateToString:
- {date: "$missing", format: "%Y-%m-%d %H:%M:%S", onNull: "$missing"}
+ {date: "$missing", format: "%Y-%m-%d %H:%M:%S", onNull: onNullValue}
}
}
})
.toArray());
+}
+
+// Test that 'onNull' can be missing, resulting in no output field when used within a $project
+// stage.
+assert.eq([{_id: 0}],
+ coll.aggregate({
+ $project: {
+ date: {
+ $dateToString:
+ {date: "$missing", format: "%Y-%m-%d %H:%M:%S", onNull: "$missing"}
+ }
+ }
+ })
+ .toArray());
})();