it()

in spec/integrated/vnext-spec/grid-view-api-spec.js [97:184]


  it('verify selection function for gridView', function () {
    let gridConfig = {
      el: '#container',
      dataSource: {
        type: 'memory',
        data: memoryData,
        primaryKey: 'UserName',
      },
      selection: {
        enabled: true,
      },
    };
    gridView = pgridFactory
      .create(gridConfig)
      .gridView;

    return new Promise(resolve => gridView.render(resolve))
      .then(() => driver.once(gridView, 'didUpdate'))
      .then(() => {
        gridView.selectRow('scottketchum');
        return driver.once(gridView, 'didUpdate');
      })
      .then(() => {
        return driver.element('#container > .table-container tbody tr[data-key]');
      })
      .then(result => {
        let checkboxEl = util.getCheckboxElFromTbody(result, 1, 0);
        let assertion = checkboxEl.is(':checked');
        expect(assertion).to.be.true;
        return null;
      })
      .then(() => {
        let expectedSelectedKey = 'scottketchum';
        expect(gridView.selectedKeys()[0]).to.be.equal(expectedSelectedKey);
        let selectedItems = gridView.selectedItems();
        expect(selectedItems.length).to.be.equal(1);
        expect(selectedItems[0].UserName).to.be.equal(expectedSelectedKey);
        return null;
      })
      .then(() => {
        gridView.deselectRow('scottketchum');
        return driver.once(gridView, 'didUpdate');
      })
      .then(() => {
        return driver.element('#container > .table-container tbody tr[data-key]');
      })
      .then(result => {
        let checkboxEl = util.getCheckboxElFromTbody(result, 1, 0);
        let assertion = checkboxEl.is(':checked');
        expect(assertion).to.be.false;
        return null;
      })
      .then(() => {
        gridView.selectAll();
        return driver.once(gridView, 'didUpdate');
      })
      .then(() => {
        return Promise.all([
          driver.element('#container > .table-container .header tr'),
          driver.element('#container > .table-container tbody tr[data-key]'),
        ]);
      })
      .then(result => {
        let checkboxHeaderEl = util.getCheckboxElFromThead(result[0], 0, 0);
        let checkboxbodyEl = util.getCheckboxElFromTbody(result[1], 0, 0);
        let assertion = checkboxHeaderEl.is(':checked') && checkboxbodyEl.is(':checked');
        expect(assertion).to.be.true;
        return null;
      })
      .then(() => {
        gridView.deselectAll();
        return driver.once(gridView, 'didUpdate');
      })
      .then(() => {
        return Promise.all([
          driver.element('#container > .table-container .header tr'),
          driver.element('#container > .table-container tbody tr[data-key]'),
        ]);
      })
      .then(result => {
        let checkboxHeaderEl = util.getCheckboxElFromThead(result[0], 0, 0);
        let checkboxbodyEl = util.getCheckboxElFromTbody(result[1], 0, 0);
        let assertion = checkboxHeaderEl.is(':checked') || checkboxbodyEl.is(':checked');
        expect(assertion).to.be.false;
        return null;
      })
      .tapCatch(console.log);
  });