in spec/integrated/vnext-spec/grid-view-api-spec.js [253:363]
it('verify body rows function for gridView', function () {
let gridConfig = {
el: '#container',
dataSource: {
type: 'memory',
data: memoryData,
primaryKey: 'UserName',
},
};
gridView = pgridFactory
.create(gridConfig)
.gridView;
return new Promise(resolve => gridView.render(resolve))
.then(() => driver.once(gridView, 'didUpdate'))
.then(() => {
expect(gridView.getBodyRows()[0]).to.be.equal('data-rows');
return null;
})
.then(() => {
gridView.setBodyRows([
{
type: 'data-rows',
classes: {
male: row => row.Gender === 'Male',
female: row => row.Gender === 'Female',
},
},
]);
return driver.once(gridView, 'didUpdate');
})
.then(() => {
return driver.element('.table-container table tbody tr[data-key]');
})
.then(result => {
util.validateClassesForElementArray([result.eq(0), result.eq(4), result.eq(9)], ['male']);
util.validateClassesForElementArray([result.eq(10), result.eq(13), result.eq(15)], ['female']);
return null;
})
.then(() => {
gridView.prependBodyRows([
{
item: { UserName: 'prepend item' },
classes: ['prepend-body-row'],
},
]);
gridView.appendBodyRows([
{
item: { UserName: 'append item' },
classes: ['append-body-row'],
},
]);
return driver.once(gridView, 'didUpdate');
})
.then(() => {
return Promise.all([
driver.element('.prepend-body-row td:nth-child(1) span'),
driver.element('.append-body-row td:nth-child(1) span'),
]);
})
.then(result => {
expect(result[0].text()).to.be.equal('prepend item');
expect(result[1].text()).to.be.equal('append item');
return null;
})
.then(() => {
gridView.setFootRows([
{
html: '<div>foot row html</div>',
classes: ['foot-row'],
},
]);
return driver.once(gridView, 'didUpdate');
})
.then(() => {
return driver.element('.footer > .foot-row > td > div');
})
.then(result => {
expect(result.length).to.be.equal(1);
expect(result.text()).to.be.equal('foot row html');
expect(gridView.getFootRows()[0].html).to.be.equal('<div>foot row html</div>');
return null;
})
.then(() => {
gridView.prependFootRows([
{
item: { UserName: 'prepend foot' },
classes: ['prepend-foot-row'],
},
]);
gridView.appendFootRows([
{
item: { UserName: 'append foot' },
classes: ['append-foot-row'],
},
]);
return driver.once(gridView, 'didUpdate');
})
.then(() => {
return Promise.all([
driver.element('.footer > .prepend-foot-row > td > span'),
driver.element('.footer > .append-foot-row > td > span'),
]);
})
.then(result => {
expect(result[0].text()).to.be.equal('prepend foot');
expect(result[1].text()).to.be.equal('append foot');
return null;
})
.tapCatch(console.log);
});