Browse Source

fix for $sort and field paths in general

Kyle P Davis 10 years ago
parent
commit
675af30117
2 changed files with 35 additions and 5 deletions
  1. 6 5
      lib/extras/markdown.js
  2. 29 0
      test/lib/extras/markdown/markdown_test.js

+ 6 - 5
lib/extras/markdown.js

@@ -181,7 +181,7 @@ function toListItem(str, i) {
 				str = indent + "sort docs by:\n";
 				str = indent + "sort docs by:\n";
 			for (var i = 0, l = this.vSortKey.length; i < l; i++) {
 			for (var i = 0, l = this.vSortKey.length; i < l; i++) {
 				var orderStr = this.vAscending[i] ? "in order" : "in reverse order";
 				var orderStr = this.vAscending[i] ? "in order" : "in reverse order";
-				str += indent + INDENT_STR + i + ". `" + this.vSortKey[i].serialize(false) + "`, " + orderStr;
+				str += indent + INDENT_STR + i + ". " + this.vSortKey[i].getMarkdown().trimRight() + ", " + orderStr;
 			}
 			}
 			return str;
 			return str;
 		};
 		};
@@ -320,11 +320,12 @@ function toListItem(str, i) {
 
 
 		expressions.FieldPathExpression.prototype.getMarkdown = function(level) {
 		expressions.FieldPathExpression.prototype.getMarkdown = function(level) {
 			var str = "",
 			var str = "",
-				indent = getIndentStr(level);
-			if (this._fieldPath.fieldNames[0] === "CURRENT" && this._fieldPath.fieldNames.length > 1) {
-				str += this._fieldPath.tail().getPath(false);
+				indent = getIndentStr(level),
+				fp = this._fieldPath;
+			if ((fp.fieldNames[0] === "CURRENT" || fp.fieldNames[0] === "ROOT") && fp.fieldNames.length > 1) {
+				str += fp.tail().getPath(false);
 			} else {
 			} else {
-				str += "$$" + this._fieldPath.getPath(false);
+				str += "$$" + fp.getPath(false);
 			}
 			}
 			return indent + "`" + str + "`\n";
 			return indent + "`" + str + "`\n";
 		};
 		};

+ 29 - 0
test/lib/extras/markdown/markdown_test.js

@@ -207,6 +207,35 @@ exports.markdown = {
 					assert.equal(actual, expected);
 					assert.equal(actual, expected);
 				},
 				},
 
 
+			},
+
+			'is $sort': {
+
+				'should get markdown for simple path in order': function() {
+					var actual = md.getMarkdown([
+							{$sort: {
+								foo: 1,
+							}}
+						]),
+						expected = [
+							'0. sort docs by:',
+							'    0. `foo`, in order',
+						].join('\n') + '\n';
+					assert.equal(actual, expected);
+				},
+
+				'should get markdown for complex path in reverse order': function() {
+					var actual = md.getMarkdown([
+							{$sort: {
+								"foo.bar": -1,
+							}}
+						]),
+						expected = [
+							'0. sort docs by:',
+							'    0. `foo.bar`, in reverse order',
+						].join('\n') + '\n';
+					assert.equal(actual, expected);
+				},
 
 
 			},
 			},