Files
pgadmin4/web/regression/javascript/slickgrid/cell_selector_spec.js
T

81 lines
2.5 KiB
JavaScript
Raw Normal View History

2017-06-08 13:31:36 +01:00
/////////////////////////////////////////////////////////////
//
// pgAdmin 4 - PostgreSQL Tools
//
2022-01-04 13:54:25 +05:30
// Copyright (C) 2013 - 2022, The pgAdmin Development Team
2017-06-08 13:31:36 +01:00
// This software is released under the PostgreSQL Licence
//
//////////////////////////////////////////////////////////////
2017-06-12 16:55:14 +01:00
import $ from 'jquery';
import 'slickgrid';
2017-06-12 16:55:14 +01:00
import 'slickgrid.grid';
2017-06-12 16:55:14 +01:00
import XCellSelectionModel from 'sources/selection/xcell_selection_model';
import CellSelector from 'sources/slickgrid/cell_selector';
import RangeSelectionHelper from 'sources/selection/range_selection_helper';
2017-06-08 13:31:36 +01:00
2017-06-12 16:55:14 +01:00
describe('CellSelector', function () {
var container, columns, cellSelector, data, cellSelectionModel, grid;
var Slick = window.Slick;
beforeEach(function () {
2017-06-12 16:55:14 +01:00
container = $('<div></div>');
container.height(9999);
container.width(9999);
columns = [{
name: 'some-column-name',
}, {
name: 'second column',
}];
2017-06-08 13:31:36 +01:00
cellSelector = new CellSelector();
2017-06-08 13:31:36 +01:00
data = [];
for (var i = 0; i < 10; i++) {
data.push({'some-column-name': 'some-value-' + i, 'second column': 'second value ' + i});
}
grid = new Slick.Grid(container, data, columns);
2017-06-08 13:31:36 +01:00
cellSelectionModel = new XCellSelectionModel();
grid.setSelectionModel(cellSelectionModel);
2017-06-08 13:31:36 +01:00
grid.registerPlugin(cellSelector);
grid.invalidate();
2017-06-08 13:31:36 +01:00
2017-06-12 16:55:14 +01:00
$('body').append(container);
});
2017-06-08 13:31:36 +01:00
afterEach(function () {
2017-06-12 16:55:14 +01:00
$('body').find(container).remove();
});
2017-06-08 13:31:36 +01:00
2017-06-12 16:55:14 +01:00
describe('when the user clicks or tabs to a cell', function () {
it('sets the selected range to that cell', function () {
var row = 1, column = 0;
2018-05-25 16:26:37 +01:00
$(container.find('.slick-row .slick-cell.l' + column)[row]).trigger('click');
2017-06-08 13:31:36 +01:00
var selectedRanges = cellSelectionModel.getSelectedRanges();
expect(selectedRanges.length).toEqual(1);
expect(selectedRanges[0].fromCell).toEqual(0);
expect(selectedRanges[0].toCell).toEqual(0);
expect(selectedRanges[0].fromRow).toEqual(1);
expect(selectedRanges[0].toRow).toEqual(1);
});
2017-06-12 16:55:14 +01:00
it('deselects previously selected ranges', function () {
var row2Range = RangeSelectionHelper.rangeForRow(grid, 2);
var ranges = RangeSelectionHelper.addRange(cellSelectionModel.getSelectedRanges(),
row2Range);
cellSelectionModel.setSelectedRanges(ranges);
2017-06-08 13:31:36 +01:00
var row = 4, column = 1;
2018-05-25 16:26:37 +01:00
$(container.find('.slick-row .slick-cell.l' + column)[row]).trigger('click');
2017-06-08 13:31:36 +01:00
expect(RangeSelectionHelper.isRangeSelected(cellSelectionModel.getSelectedRanges(), row2Range))
.toEqual(false);
2017-06-08 13:31:36 +01:00
});
});
});