mono/packages/xblox/ref-control-freak/xblox/test/intern/extensions/CompoundColumns.js
2026-02-10 00:02:02 +01:00

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');
});
});
});
});