can-query-logic
Version:
111 lines (93 loc) • 2.46 kB
JavaScript
var QUnit = require("steal-qunit");
var helpers = require("./helpers");
var canReflect = require("can-reflect");
QUnit.module("can-query-logic/helpers");
QUnit.test('.getIdentityIndex', function(assert){
var items = [
{id: 1, name: "Item 0"},
{id: 2, name: "Item 1"},
{id: 3, name: "Item 1"},
{id: 4, name: "Item 1"},
{id: 5, name: "Item 2"}
];
canReflect.eachIndex(items, function(item) {
canReflect.assignSymbols(item, {
"can.getSchema": function() {
return {
type: "map",
identity: ["id"],
keys: {
id: Number,
name: String
}
};
}
});
});
var props = {id:2, name: "Item 1"};
canReflect.assignSymbols(props,{
"can.getSchema": function() {
return {
type: "map",
identity: ["id"],
keys: {
id: Number,
name: String
}
};
}
});
var compare = helpers.sorter("name", {});
var res = helpers.getIdentityIndex(compare, items, props, 1);
assert.deepEqual(res, 1);
});
QUnit.test(".getIndex should not sort unchanged items #33", function(assert) {
var items = [
{id: 1, name: "Item 0"},
{id: 2, name: "Item 1"},
{id: 3, name: "Item 1"},
{id: 4, name: "Item 1"},
{id: 5, name: "Item 2"}
];
canReflect.eachIndex(items, function(item) {
canReflect.assignSymbols(item, {
"can.getSchema": function() {
return {
type: "map",
identity: ["id"],
keys: {
id: Number,
name: String
}
};
}
});
});
var compare = helpers.sorter("name", {});
var res1 = helpers.getIndex(compare,items, items[0]);
var res2 = helpers.getIndex(compare,items, items[1]);
var res3 = helpers.getIndex(compare,items, items[2]);
var res4 = helpers.getIndex(compare,items, items[3]);
assert.equal(res1, 0);
assert.equal(res2, 1);
assert.equal(res3, 2);
assert.equal(res4, 3);
});
QUnit.test(".getIndex on an empty list should return 0 #59", function(assert) {
var items = [];
var compare = helpers.sorter("-id");
var index = helpers.getIndex(compare,items, {id: 1, name: "Item 1"});
assert.equal(index, 0);
});
QUnit.test("Missed schema on helper.getIndex #45", function(assert) {
var items = [
{id: 1, name: "Item 0"},
{id: 2, name: "Item 1"},
{id: 3, name: "Item 2"},
{id: 4, name: "Item 3"},
{id: 5, name: "Item 4"}
];
var compare = helpers.sorter("name", {});
var schema = { keys: {}, identity: ["id"] };
assert.equal(helpers.getIndex(compare,items, {id: 2, name: "Item 1"}, schema), 1);
});