713 lines
28 KiB
JavaScript
713 lines
28 KiB
JavaScript
define([
|
|
'intern!tdd',
|
|
'intern/chai!assert',
|
|
'dojo/_base/declare',
|
|
'dgrid/Grid',
|
|
'dgrid/extensions/CompoundColumns'
|
|
], function (test, assert, declare, Grid, CompoundColumns) {
|
|
var CompoundColumnGrid = declare([Grid, CompoundColumns]),
|
|
data = [],
|
|
grid;
|
|
|
|
// Generate data to be used for all tests
|
|
for (var itemIndex = 0; itemIndex < 12; itemIndex++) {
|
|
var item = { id: itemIndex };
|
|
for (var propIndex = 0; propIndex < 10; propIndex++) {
|
|
item['data' + propIndex] = 'Value ' + itemIndex + ':' + propIndex;
|
|
}
|
|
data.push(item);
|
|
}
|
|
|
|
function createGrid(columns, hideHeader) {
|
|
grid = new CompoundColumnGrid({
|
|
columns: columns,
|
|
showHeader: !hideHeader
|
|
});
|
|
document.body.appendChild(grid.domNode);
|
|
grid.startup();
|
|
grid.renderArray(data);
|
|
}
|
|
|
|
test.suite('CompoundColumns', function () {
|
|
test.suite('cell method', function () {
|
|
test.afterEach(function () {
|
|
grid.destroy();
|
|
});
|
|
|
|
test.test('simple grid', function () {
|
|
createGrid({
|
|
data0: 'Data 0',
|
|
data1: 'Data 1',
|
|
data2: 'Data 2',
|
|
data3: 'Data 3',
|
|
data4: 'Data 4'
|
|
}, true);
|
|
|
|
assert.strictEqual(grid.cell(0, 0).element.innerHTML, 'Value 0:0');
|
|
assert.strictEqual(grid.cell(0, 4).element.innerHTML, 'Value 0:4');
|
|
assert.strictEqual(grid.cell(11, 0).element.innerHTML, 'Value 11:0');
|
|
assert.strictEqual(grid.cell(11, 4).element.innerHTML, 'Value 11:4');
|
|
assert.isUndefined(grid.cell(0, 5).element);
|
|
assert.isUndefined(grid.cell(12, 0).element);
|
|
});
|
|
|
|
test.test('simple grid with column ids', function () {
|
|
createGrid({
|
|
data0: { label: 'Data 0', id: 'myData0' },
|
|
data1: { label: 'Data 1', id: 'myData1' },
|
|
data2: { label: 'Data 2', id: 'myData2' },
|
|
data3: { label: 'Data 3', id: 'myData3' },
|
|
data4: { label: 'Data 4', id: 'myData4' }
|
|
}, true);
|
|
|
|
assert.strictEqual(grid.cell(0, 'myData0').element.innerHTML, 'Value 0:0');
|
|
assert.strictEqual(grid.cell(0, 'myData4').element.innerHTML, 'Value 0:4');
|
|
assert.strictEqual(grid.cell(11, 'myData0').element.innerHTML, 'Value 11:0');
|
|
assert.strictEqual(grid.cell(11, 'myData4').element.innerHTML, 'Value 11:4');
|
|
assert.isUndefined(grid.cell(0, 'myData5').element);
|
|
assert.isUndefined(grid.cell(12, 'myData0').element);
|
|
|
|
assert.isUndefined(grid.cell(0, 0).element);
|
|
});
|
|
|
|
test.test('grid with children', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1' },
|
|
{ field: 'data2', label: 'Data 2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4' },
|
|
{ field: 'data5', label: 'Data 5' }
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.cell(0, 0).element.innerHTML, 'Value 0:0');
|
|
assert.strictEqual(grid.cell(0, 1).element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 2).element.innerHTML, 'Value 0:2');
|
|
assert.strictEqual(grid.cell(0, 5).element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(11, 0).element.innerHTML, 'Value 11:0');
|
|
assert.strictEqual(grid.cell(11, 1).element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 2).element.innerHTML, 'Value 11:2');
|
|
assert.strictEqual(grid.cell(11, 5).element.innerHTML, 'Value 11:5');
|
|
|
|
assert.isUndefined(grid.cell(0, 6).element);
|
|
assert.isUndefined(grid.cell(12, 0).element);
|
|
});
|
|
|
|
test.test('grid with children and children ids', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' }
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.cell(0, 0).element.innerHTML, 'Value 0:0');
|
|
assert.strictEqual(grid.cell(0, 3).element.innerHTML, 'Value 0:3');
|
|
assert.strictEqual(grid.cell(0, 'myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'myData2').element.innerHTML, 'Value 0:2');
|
|
assert.strictEqual(grid.cell(0, 'myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(11, 0).element.innerHTML, 'Value 11:0');
|
|
assert.strictEqual(grid.cell(11, 3).element.innerHTML, 'Value 11:3');
|
|
assert.strictEqual(grid.cell(11, 'myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'myData2').element.innerHTML, 'Value 11:2');
|
|
assert.strictEqual(grid.cell(11, 'myData5').element.innerHTML, 'Value 11:5');
|
|
|
|
assert.strictEqual(grid.cell(0, '0-1-myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, '0-1-myData2').element.innerHTML, 'Value 0:2');
|
|
assert.strictEqual(grid.cell(0, '0-4-myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(11, '0-1-myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, '0-1-myData2').element.innerHTML, 'Value 11:2');
|
|
assert.strictEqual(grid.cell(11, '0-4-myData5').element.innerHTML, 'Value 11:5');
|
|
|
|
assert.strictEqual(grid.cell(0, '1-myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, '1-myData2').element.innerHTML, 'Value 0:2');
|
|
assert.strictEqual(grid.cell(0, '4-myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(11, '1-myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, '1-myData2').element.innerHTML, 'Value 11:2');
|
|
assert.strictEqual(grid.cell(11, '4-myData5').element.innerHTML, 'Value 11:5');
|
|
});
|
|
|
|
test.test('grid with children and ids', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
id: 'compound1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
id: 'compound2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' }
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.cell(0, 0).element.innerHTML, 'Value 0:0');
|
|
assert.strictEqual(grid.cell(0, 3).element.innerHTML, 'Value 0:3');
|
|
assert.strictEqual(grid.cell(0, 'myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'myData2').element.innerHTML, 'Value 0:2');
|
|
assert.strictEqual(grid.cell(0, 'myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(11, 0).element.innerHTML, 'Value 11:0');
|
|
assert.strictEqual(grid.cell(11, 3).element.innerHTML, 'Value 11:3');
|
|
assert.strictEqual(grid.cell(11, 'myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'myData2').element.innerHTML, 'Value 11:2');
|
|
assert.strictEqual(grid.cell(11, 'myData5').element.innerHTML, 'Value 11:5');
|
|
|
|
assert.strictEqual(grid.cell(0, 'compound1-myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'compound1-myData2').element.innerHTML, 'Value 0:2');
|
|
assert.strictEqual(grid.cell(0, 'compound2-myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(11, 'compound1-myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'compound1-myData2').element.innerHTML, 'Value 11:2');
|
|
assert.strictEqual(grid.cell(11, 'compound2-myData5').element.innerHTML, 'Value 11:5');
|
|
});
|
|
|
|
test.test('grid with nested children and ids', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
id: 'compound1',
|
|
children: [
|
|
{
|
|
label: 'Nested Compound 1',
|
|
id: 'nested1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data9', label: 'Data 9', id: 'myData9' }
|
|
]
|
|
},
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
id: 'compound2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{
|
|
label: 'Nested Compound 2',
|
|
id: 'nested2',
|
|
children: [
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' },
|
|
{ field: 'data8', label: 'Data 8', id: 'myData8' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.cell(0, 'myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'myData2').element.innerHTML, 'Value 0:2');
|
|
assert.strictEqual(grid.cell(0, 'myData9').element.innerHTML, 'Value 0:9');
|
|
assert.strictEqual(grid.cell(0, 'myData4').element.innerHTML, 'Value 0:4');
|
|
assert.strictEqual(grid.cell(0, 'myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(0, 'myData8').element.innerHTML, 'Value 0:8');
|
|
assert.strictEqual(grid.cell(11, 'myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'myData2').element.innerHTML, 'Value 11:2');
|
|
assert.strictEqual(grid.cell(11, 'myData9').element.innerHTML, 'Value 11:9');
|
|
assert.strictEqual(grid.cell(11, 'myData4').element.innerHTML, 'Value 11:4');
|
|
assert.strictEqual(grid.cell(11, 'myData5').element.innerHTML, 'Value 11:5');
|
|
assert.strictEqual(grid.cell(11, 'myData8').element.innerHTML, 'Value 11:8');
|
|
|
|
assert.strictEqual(grid.cell(0, 'nested1-myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'nested1-myData9').element.innerHTML, 'Value 0:9');
|
|
assert.strictEqual(grid.cell(0, 'nested2-myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(0, 'nested2-myData8').element.innerHTML, 'Value 0:8');
|
|
assert.strictEqual(grid.cell(11, 'nested1-myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'nested1-myData9').element.innerHTML, 'Value 11:9');
|
|
assert.strictEqual(grid.cell(11, 'nested2-myData5').element.innerHTML, 'Value 11:5');
|
|
assert.strictEqual(grid.cell(11, 'nested2-myData8').element.innerHTML, 'Value 11:8');
|
|
|
|
assert.strictEqual(grid.cell(0, 'compound1-nested1-myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'compound1-nested1-myData9').element.innerHTML, 'Value 0:9');
|
|
assert.strictEqual(grid.cell(0, 'compound2-nested2-myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(0, 'compound2-nested2-myData8').element.innerHTML, 'Value 0:8');
|
|
assert.strictEqual(grid.cell(11, 'compound1-nested1-myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'compound1-nested1-myData9').element.innerHTML, 'Value 11:9');
|
|
assert.strictEqual(grid.cell(11, 'compound2-nested2-myData5').element.innerHTML, 'Value 11:5');
|
|
assert.strictEqual(grid.cell(11, 'compound2-nested2-myData8').element.innerHTML, 'Value 11:8');
|
|
});
|
|
|
|
test.test('grid with nested children and ids hiding all headers', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
id: 'compound1',
|
|
children: [
|
|
{
|
|
label: 'Nested Compound 1',
|
|
id: 'nested1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data9', label: 'Data 9', id: 'myData9' }
|
|
]
|
|
},
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
id: 'compound2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{
|
|
label: 'Nested Compound 2',
|
|
id: 'nested2',
|
|
children: [
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' },
|
|
{ field: 'data8', label: 'Data 8', id: 'myData8' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
], true);
|
|
|
|
assert.strictEqual(grid.cell(0, 'myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'myData2').element.innerHTML, 'Value 0:2');
|
|
assert.strictEqual(grid.cell(0, 'myData9').element.innerHTML, 'Value 0:9');
|
|
assert.strictEqual(grid.cell(0, 'myData4').element.innerHTML, 'Value 0:4');
|
|
assert.strictEqual(grid.cell(0, 'myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(0, 'myData8').element.innerHTML, 'Value 0:8');
|
|
assert.strictEqual(grid.cell(11, 'myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'myData2').element.innerHTML, 'Value 11:2');
|
|
assert.strictEqual(grid.cell(11, 'myData9').element.innerHTML, 'Value 11:9');
|
|
assert.strictEqual(grid.cell(11, 'myData4').element.innerHTML, 'Value 11:4');
|
|
assert.strictEqual(grid.cell(11, 'myData5').element.innerHTML, 'Value 11:5');
|
|
assert.strictEqual(grid.cell(11, 'myData8').element.innerHTML, 'Value 11:8');
|
|
|
|
assert.strictEqual(grid.cell(0, 'nested1-myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'nested1-myData9').element.innerHTML, 'Value 0:9');
|
|
assert.strictEqual(grid.cell(0, 'nested2-myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(0, 'nested2-myData8').element.innerHTML, 'Value 0:8');
|
|
assert.strictEqual(grid.cell(11, 'nested1-myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'nested1-myData9').element.innerHTML, 'Value 11:9');
|
|
assert.strictEqual(grid.cell(11, 'nested2-myData5').element.innerHTML, 'Value 11:5');
|
|
assert.strictEqual(grid.cell(11, 'nested2-myData8').element.innerHTML, 'Value 11:8');
|
|
|
|
assert.strictEqual(grid.cell(0, 'compound1-nested1-myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'compound1-nested1-myData9').element.innerHTML, 'Value 0:9');
|
|
assert.strictEqual(grid.cell(0, 'compound2-nested2-myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(0, 'compound2-nested2-myData8').element.innerHTML, 'Value 0:8');
|
|
assert.strictEqual(grid.cell(11, 'compound1-nested1-myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'compound1-nested1-myData9').element.innerHTML, 'Value 11:9');
|
|
assert.strictEqual(grid.cell(11, 'compound2-nested2-myData5').element.innerHTML, 'Value 11:5');
|
|
assert.strictEqual(grid.cell(11, 'compound2-nested2-myData8').element.innerHTML, 'Value 11:8');
|
|
});
|
|
|
|
test.test('grid with nested children and ids hiding child headers', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
id: 'compound1',
|
|
children: [
|
|
{
|
|
label: 'Nested Compound 1',
|
|
id: 'nested1',
|
|
showChildHeaders: false,
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data9', label: 'Data 9', id: 'myData9' }
|
|
]
|
|
},
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
id: 'compound2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{
|
|
label: 'Nested Compound 2',
|
|
id: 'nested2',
|
|
showChildHeaders: false,
|
|
children: [
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' },
|
|
{ field: 'data8', label: 'Data 8', id: 'myData8' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.cell(0, 'myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'myData2').element.innerHTML, 'Value 0:2');
|
|
assert.strictEqual(grid.cell(0, 'myData9').element.innerHTML, 'Value 0:9');
|
|
assert.strictEqual(grid.cell(0, 'myData4').element.innerHTML, 'Value 0:4');
|
|
assert.strictEqual(grid.cell(0, 'myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(0, 'myData8').element.innerHTML, 'Value 0:8');
|
|
assert.strictEqual(grid.cell(11, 'myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'myData2').element.innerHTML, 'Value 11:2');
|
|
assert.strictEqual(grid.cell(11, 'myData9').element.innerHTML, 'Value 11:9');
|
|
assert.strictEqual(grid.cell(11, 'myData4').element.innerHTML, 'Value 11:4');
|
|
assert.strictEqual(grid.cell(11, 'myData5').element.innerHTML, 'Value 11:5');
|
|
assert.strictEqual(grid.cell(11, 'myData8').element.innerHTML, 'Value 11:8');
|
|
|
|
assert.strictEqual(grid.cell(0, 'nested1-myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'nested1-myData9').element.innerHTML, 'Value 0:9');
|
|
assert.strictEqual(grid.cell(0, 'nested2-myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(0, 'nested2-myData8').element.innerHTML, 'Value 0:8');
|
|
assert.strictEqual(grid.cell(11, 'nested1-myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'nested1-myData9').element.innerHTML, 'Value 11:9');
|
|
assert.strictEqual(grid.cell(11, 'nested2-myData5').element.innerHTML, 'Value 11:5');
|
|
assert.strictEqual(grid.cell(11, 'nested2-myData8').element.innerHTML, 'Value 11:8');
|
|
|
|
assert.strictEqual(grid.cell(0, 'compound1-nested1-myData1').element.innerHTML, 'Value 0:1');
|
|
assert.strictEqual(grid.cell(0, 'compound1-nested1-myData9').element.innerHTML, 'Value 0:9');
|
|
assert.strictEqual(grid.cell(0, 'compound2-nested2-myData5').element.innerHTML, 'Value 0:5');
|
|
assert.strictEqual(grid.cell(0, 'compound2-nested2-myData8').element.innerHTML, 'Value 0:8');
|
|
assert.strictEqual(grid.cell(11, 'compound1-nested1-myData1').element.innerHTML, 'Value 11:1');
|
|
assert.strictEqual(grid.cell(11, 'compound1-nested1-myData9').element.innerHTML, 'Value 11:9');
|
|
assert.strictEqual(grid.cell(11, 'compound2-nested2-myData5').element.innerHTML, 'Value 11:5');
|
|
assert.strictEqual(grid.cell(11, 'compound2-nested2-myData8').element.innerHTML, 'Value 11:8');
|
|
});
|
|
});
|
|
|
|
test.suite('column method', function () {
|
|
test.afterEach(function () {
|
|
grid.destroy();
|
|
});
|
|
|
|
test.test('simple grid', function () {
|
|
createGrid({
|
|
data0: 'Data 0',
|
|
data1: 'Data 1',
|
|
data2: 'Data 2',
|
|
data3: 'Data 3',
|
|
data4: 'Data 4'
|
|
}, true);
|
|
|
|
assert.strictEqual(grid.column(0).label, 'Data 0');
|
|
assert.strictEqual(grid.column(4).label, 'Data 4');
|
|
assert.isUndefined(grid.column(5));
|
|
});
|
|
|
|
test.test('simple grid with column ids', function () {
|
|
createGrid({
|
|
data0: { label: 'Data 0', id: 'myData0' },
|
|
data1: { label: 'Data 1', id: 'myData1' },
|
|
data2: { label: 'Data 2', id: 'myData2' },
|
|
data3: { label: 'Data 3', id: 'myData3' },
|
|
data4: { label: 'Data 4', id: 'myData4' }
|
|
}, true);
|
|
|
|
assert.strictEqual(grid.column('myData0').label, 'Data 0');
|
|
assert.strictEqual(grid.column('myData4').label, 'Data 4');
|
|
assert.isUndefined(grid.column('myData5'));
|
|
assert.isUndefined(grid.column(0));
|
|
});
|
|
|
|
test.test('grid with children', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1' },
|
|
{ field: 'data2', label: 'Data 2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4' },
|
|
{ field: 'data5', label: 'Data 5' }
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.column(0).label, 'Data 0');
|
|
assert.strictEqual(grid.column(1).label, 'Data 1');
|
|
assert.strictEqual(grid.column(2).label, 'Data 2');
|
|
assert.strictEqual(grid.column(5).label, 'Data 5');
|
|
assert.isUndefined(grid.column(6));
|
|
});
|
|
|
|
test.test('grid with children and children ids', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' }
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.column(0).label, 'Data 0');
|
|
assert.strictEqual(grid.column(3).label, 'Data 3');
|
|
assert.strictEqual(grid.column('myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('myData2').label, 'Data 2');
|
|
assert.strictEqual(grid.column('myData5').label, 'Data 5');
|
|
|
|
assert.strictEqual(grid.column('0-1-myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('0-1-myData2').label, 'Data 2');
|
|
assert.strictEqual(grid.column('0-4-myData5').label, 'Data 5');
|
|
|
|
assert.strictEqual(grid.column('1-myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('1-myData2').label, 'Data 2');
|
|
assert.strictEqual(grid.column('4-myData5').label, 'Data 5');
|
|
});
|
|
|
|
test.test('grid with children and ids', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
id: 'compound1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
id: 'compound2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' }
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.column(0).label, 'Data 0');
|
|
assert.strictEqual(grid.column(3).label, 'Data 3');
|
|
assert.strictEqual(grid.column('myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('myData2').label, 'Data 2');
|
|
assert.strictEqual(grid.column('myData5').label, 'Data 5');
|
|
|
|
assert.strictEqual(grid.column('compound1-myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('compound1-myData2').label, 'Data 2');
|
|
assert.strictEqual(grid.column('compound2-myData5').label, 'Data 5');
|
|
});
|
|
|
|
test.test('grid with nested children and ids', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
id: 'compound1',
|
|
children: [
|
|
{
|
|
label: 'Nested Compound 1',
|
|
id: 'nested1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data9', label: 'Data 9', id: 'myData9' }
|
|
]
|
|
},
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
id: 'compound2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{
|
|
label: 'Nested Compound 2',
|
|
id: 'nested2',
|
|
children: [
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' },
|
|
{ field: 'data8', label: 'Data 8', id: 'myData8' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.column('myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('myData2').label, 'Data 2');
|
|
assert.strictEqual(grid.column('myData9').label, 'Data 9');
|
|
assert.strictEqual(grid.column('myData4').label, 'Data 4');
|
|
assert.strictEqual(grid.column('myData5').label, 'Data 5');
|
|
assert.strictEqual(grid.column('myData8').label, 'Data 8');
|
|
|
|
assert.strictEqual(grid.column('nested1-myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('nested1-myData9').label, 'Data 9');
|
|
assert.strictEqual(grid.column('nested2-myData5').label, 'Data 5');
|
|
assert.strictEqual(grid.column('nested2-myData8').label, 'Data 8');
|
|
|
|
assert.strictEqual(grid.column('compound1-nested1-myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('compound1-nested1-myData9').label, 'Data 9');
|
|
assert.strictEqual(grid.column('compound2-nested2-myData5').label, 'Data 5');
|
|
assert.strictEqual(grid.column('compound2-nested2-myData8').label, 'Data 8');
|
|
});
|
|
|
|
test.test('grid with nested children and ids hiding all headers', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
id: 'compound1',
|
|
children: [
|
|
{
|
|
label: 'Nested Compound 1',
|
|
id: 'nested1',
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data9', label: 'Data 9', id: 'myData9' }
|
|
]
|
|
},
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
id: 'compound2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{
|
|
label: 'Nested Compound 2',
|
|
id: 'nested2',
|
|
children: [
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' },
|
|
{ field: 'data8', label: 'Data 8', id: 'myData8' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
], true);
|
|
|
|
assert.strictEqual(grid.column('myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('myData2').label, 'Data 2');
|
|
assert.strictEqual(grid.column('myData9').label, 'Data 9');
|
|
assert.strictEqual(grid.column('myData4').label, 'Data 4');
|
|
assert.strictEqual(grid.column('myData5').label, 'Data 5');
|
|
assert.strictEqual(grid.column('myData8').label, 'Data 8');
|
|
|
|
assert.strictEqual(grid.column('nested1-myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('nested1-myData9').label, 'Data 9');
|
|
assert.strictEqual(grid.column('nested2-myData5').label, 'Data 5');
|
|
assert.strictEqual(grid.column('nested2-myData8').label, 'Data 8');
|
|
|
|
assert.strictEqual(grid.column('compound1-nested1-myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('compound1-nested1-myData9').label, 'Data 9');
|
|
assert.strictEqual(grid.column('compound2-nested2-myData5').label, 'Data 5');
|
|
assert.strictEqual(grid.column('compound2-nested2-myData8').label, 'Data 8');
|
|
});
|
|
|
|
test.test('grid with nested children and ids hiding child headers', function () {
|
|
createGrid([
|
|
{ field: 'data0', label: 'Data 0' },
|
|
{
|
|
label: 'Compound 1',
|
|
id: 'compound1',
|
|
children: [
|
|
{
|
|
label: 'Nested Compound 1',
|
|
id: 'nested1',
|
|
showChildHeaders: false,
|
|
children: [
|
|
{ field: 'data1', label: 'Data 1', id: 'myData1' },
|
|
{ field: 'data9', label: 'Data 9', id: 'myData9' }
|
|
]
|
|
},
|
|
{ field: 'data2', label: 'Data 2', id: 'myData2' }
|
|
]
|
|
},
|
|
{ field: 'data3', label: 'Data 3' },
|
|
{
|
|
label: 'Compound 2',
|
|
id: 'compound2',
|
|
children: [
|
|
{ field: 'data4', label: 'Data 4', id: 'myData4' },
|
|
{
|
|
label: 'Nested Compound 2',
|
|
id: 'nested2',
|
|
showChildHeaders: false,
|
|
children: [
|
|
{ field: 'data5', label: 'Data 5', id: 'myData5' },
|
|
{ field: 'data8', label: 'Data 8', id: 'myData8' }
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]);
|
|
|
|
assert.strictEqual(grid.column('myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('myData2').label, 'Data 2');
|
|
assert.strictEqual(grid.column('myData9').label, 'Data 9');
|
|
assert.strictEqual(grid.column('myData4').label, 'Data 4');
|
|
assert.strictEqual(grid.column('myData5').label, 'Data 5');
|
|
assert.strictEqual(grid.column('myData8').label, 'Data 8');
|
|
|
|
assert.strictEqual(grid.column('nested1-myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('nested1-myData9').label, 'Data 9');
|
|
assert.strictEqual(grid.column('nested2-myData5').label, 'Data 5');
|
|
assert.strictEqual(grid.column('nested2-myData8').label, 'Data 8');
|
|
|
|
assert.strictEqual(grid.column('compound1-nested1-myData1').label, 'Data 1');
|
|
assert.strictEqual(grid.column('compound1-nested1-myData9').label, 'Data 9');
|
|
assert.strictEqual(grid.column('compound2-nested2-myData5').label, 'Data 5');
|
|
assert.strictEqual(grid.column('compound2-nested2-myData8').label, 'Data 8');
|
|
});
|
|
});
|
|
|
|
test.suite('sort method', function () {
|
|
test.afterEach(function () {
|
|
grid.destroy();
|
|
});
|
|
|
|
test.test('sort grid programmatically by field present in header', function () {
|
|
createGrid({
|
|
data0: 'Data 0',
|
|
data1: 'Data 1',
|
|
data2: 'Data 2',
|
|
data3: 'Data 3',
|
|
data4: 'Data 4'
|
|
});
|
|
assert.doesNotThrow(function () {
|
|
grid.set('sort', 'data0');
|
|
}, null, 'Sorting grid programmatically should not throw error');
|
|
});
|
|
});
|
|
});
|
|
}); |