diff --git a/packages/minimongo/minimongo_tests.js b/packages/minimongo/minimongo_tests.js index 1a1d1f325f..2e19809450 100644 --- a/packages/minimongo/minimongo_tests.js +++ b/packages/minimongo/minimongo_tests.js @@ -1790,6 +1790,32 @@ Tinytest.add("minimongo - array sort", function (test) { _.range(c.find().count())); }); +Tinytest.add("minimongo - sort keys", function (test) { + var keyListToObject = function (keyList) { + var obj = {}; + _.each(keyList, function (key) { + obj[EJSON.stringify(key)] = true; + }); + return obj; + }; + + var testKeys = function (sortSpec, doc, expectedKeyList) { + var expectedKeys = keyListToObject(expectedKeyList); + var sorter = new Minimongo.Sorter(sortSpec); + + var actualKeyList = []; + sorter._generateKeysFromDoc(doc, function (key) { + actualKeyList.push(key); + }); + var actualKeys = keyListToObject(actualKeyList); + test.equal(actualKeys, expectedKeys); + }; + + testKeys({'a.x': 1, 'a.y': 1}, + {a: [{x: 0, y: 5}, {x: 1, y: 3}]}, + [[0,5], [1,3]]); +}); + Tinytest.add("minimongo - binary search", function (test) { var forwardCmp = function (a, b) { return a - b;