diff --git a/web/karma.conf.js b/web/karma.conf.js
index 2bc67573..0abab70f 100644
--- a/web/karma.conf.js
+++ b/web/karma.conf.js
@@ -21,7 +21,7 @@ module.exports = function (config) {
// list of files to exclude
exclude: [
'pgadmin/static/vendor/**/*[Tt]est.js',
- 'pgadmin/static/vendor/**/*[Ss]pec.js'
+ 'pgadmin/static/vendor/**/*[Ss]pec.js',
],
// preprocess matching files before serving them to the browser
@@ -61,6 +61,6 @@ module.exports = function (config) {
// Concurrency level
// how many browser should be started simultaneous
- concurrency: Infinity
+ concurrency: Infinity,
});
};
diff --git a/web/package.json b/web/package.json
index 40070da0..b5d2e0cb 100644
--- a/web/package.json
+++ b/web/package.json
@@ -5,6 +5,8 @@
"babel-preset-es2015": "~6.24.0",
"babel-preset-react": "~6.23.0",
"enzyme": "~2.8.2",
+ "eslint": "^3.19.0",
+ "eslint-plugin-react": "^6.10.3",
"jasmine-core": "~2.5.2",
"karma": "~1.5.0",
"karma-babel-preprocessor": "^6.0.1",
@@ -34,9 +36,11 @@
"watchify": "~3.9.0"
},
"scripts": {
- "bundle": "yarn run webpack -- --optimize-minimize --config webpack.config.js",
- "test:karma-once": "yarn run karma start -- --single-run",
- "test:karma": "yarn run karma start",
+ "linter": "yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js",
+ "webpacker": "yarn run webpack -- --optimize-minimize --config webpack.config.js",
+ "bundle": "yarn run linter && yarn run webpacker",
+ "test:karma-once": "yarn run linter && yarn run karma start -- --single-run",
+ "test:karma": "yarn run linter && yarn run karma start",
"test:feature": "yarn run bundle && python regression/runtests.py --pkg feature_tests",
"test": "yarn run test:karma-once && yarn run bundle && python regression/runtests.py"
}
diff --git a/web/pgadmin/static/js/selection/clipboard.js b/web/pgadmin/static/js/selection/clipboard.js
index 9e20da7e..9794ae7e 100644
--- a/web/pgadmin/static/js/selection/clipboard.js
+++ b/web/pgadmin/static/js/selection/clipboard.js
@@ -1,7 +1,7 @@
define(['sources/gettext', 'alertify'], function (gettext, alertify) {
var clipboard = {
copyTextToClipboard: function (text) {
- var textArea = document.createElement("textarea");
+ var textArea = document.createElement('textarea');
//
// *** This styling is an extra step which is likely not required. ***
@@ -55,7 +55,7 @@ define(['sources/gettext', 'alertify'], function (gettext, alertify) {
}
document.body.removeChild(textArea);
- }
+ },
};
return clipboard;
});
\ No newline at end of file
diff --git a/web/pgadmin/static/js/selection/column_selector.js b/web/pgadmin/static/js/selection/column_selector.js
index c89b3fa8..a81b6918 100644
--- a/web/pgadmin/static/js/selection/column_selector.js
+++ b/web/pgadmin/static/js/selection/column_selector.js
@@ -2,18 +2,18 @@ define(['jquery', 'sources/selection/range_selection_helper', 'slickgrid'], func
var ColumnSelector = function () {
var init = function (grid) {
grid.onHeaderClick.subscribe(function (event, eventArgument) {
- var column = eventArgument.column;
+ var column = eventArgument.column;
- if (column.selectable !== false) {
+ if (column.selectable !== false) {
- if (!clickedCheckbox(event)) {
- var $checkbox = $("[data-id='checkbox-" + column.id + "']");
- toggleCheckbox($checkbox);
- }
-
- updateRanges(grid, column.id);
+ if (!clickedCheckbox(event)) {
+ var $checkbox = $('[data-id=\'checkbox-' + column.id + '\']');
+ toggleCheckbox($checkbox);
}
+
+ updateRanges(grid, column.id);
}
+ }
);
grid.getSelectionModel().onSelectedRangesChanged
.subscribe(handleSelectedRangesChanged.bind(null, grid));
@@ -52,14 +52,14 @@ define(['jquery', 'sources/selection/range_selection_helper', 'slickgrid'], func
};
var clickedCheckbox = function (e) {
- return e.target.type == "checkbox"
+ return e.target.type == 'checkbox';
};
var toggleCheckbox = function (checkbox) {
- if (checkbox.prop("checked")) {
- checkbox.prop("checked", false)
+ if (checkbox.prop('checked')) {
+ checkbox.prop('checked', false);
} else {
- checkbox.prop("checked", true)
+ checkbox.prop('checked', true);
}
};
@@ -67,15 +67,15 @@ define(['jquery', 'sources/selection/range_selection_helper', 'slickgrid'], func
return _.map(columnDefinitions, function (columnDefinition) {
if (columnDefinition.selectable !== false) {
var name =
- "" +
- " " +
- " " + columnDefinition.name + "" +
- "";
+ '' +
+ ' ' +
+ ' ' + columnDefinition.name + '' +
+ '';
return _.extend(columnDefinition, {
- name: name
+ name: name,
});
} else {
return columnDefinition;
@@ -84,8 +84,8 @@ define(['jquery', 'sources/selection/range_selection_helper', 'slickgrid'], func
};
$.extend(this, {
- "init": init,
- "getColumnDefinitionsWithCheckboxes": getColumnDefinitionsWithCheckboxes
+ 'init': init,
+ 'getColumnDefinitionsWithCheckboxes': getColumnDefinitionsWithCheckboxes,
});
};
return ColumnSelector;
diff --git a/web/pgadmin/static/js/selection/copy_data.js b/web/pgadmin/static/js/selection/copy_data.js
index 018efead..0ccd4b96 100644
--- a/web/pgadmin/static/js/selection/copy_data.js
+++ b/web/pgadmin/static/js/selection/copy_data.js
@@ -5,48 +5,48 @@ define([
'sources/selection/range_selection_helper',
'sources/selection/range_boundary_navigator'],
function ($, _, clipboard, RangeSelectionHelper, rangeBoundaryNavigator) {
- var copyData = function () {
- var self = this;
-
- var grid = self.slickgrid;
- var columnDefinitions = grid.getColumns();
- var selectedRanges = grid.getSelectionModel().getSelectedRanges();
- var data = grid.getData();
- var rows = grid.getSelectedRows();
+ var copyData = function () {
+ var self = this;
+
+ var grid = self.slickgrid;
+ var columnDefinitions = grid.getColumns();
+ var selectedRanges = grid.getSelectionModel().getSelectedRanges();
+ var data = grid.getData();
+ var rows = grid.getSelectedRows();
+
+
+ if (allTheRangesAreFullRows(selectedRanges, columnDefinitions)) {
+ self.copied_rows = rows.map(function (rowIndex) {
+ return data[rowIndex];
+ });
+ setPasteRowButtonEnablement(self.can_edit, true);
+ } else {
+ self.copied_rows = [];
+ setPasteRowButtonEnablement(self.can_edit, false);
+ }
+
+ var csvText = rangeBoundaryNavigator.rangesToCsv(data, columnDefinitions, selectedRanges);
+ if (csvText) {
+ clipboard.copyTextToClipboard(csvText);
+ }
+ };
+
+ var setPasteRowButtonEnablement = function (canEditFlag, isEnabled) {
+ if (canEditFlag) {
+ $('#btn-paste-row').prop('disabled', !isEnabled);
+ }
+ };
+
+ var allTheRangesAreFullRows = function (ranges, columnDefinitions) {
+ var colRangeBounds = ranges.map(function (range) {
+ return [range.fromCell, range.toCell];
+ });
+ if(RangeSelectionHelper.isFirstColumnData(columnDefinitions)) {
+ return _.isEqual(_.union.apply(null, colRangeBounds), [0, columnDefinitions.length - 1]);
+ }
+ return _.isEqual(_.union.apply(null, colRangeBounds), [1, columnDefinitions.length - 1]);
+ };
- if (allTheRangesAreFullRows(selectedRanges, columnDefinitions)) {
- self.copied_rows = rows.map(function (rowIndex) {
- return data[rowIndex];
- });
- setPasteRowButtonEnablement(self.can_edit, true);
- } else {
- self.copied_rows = [];
- setPasteRowButtonEnablement(self.can_edit, false);
- }
-
- var csvText = rangeBoundaryNavigator.rangesToCsv(data, columnDefinitions, selectedRanges);
- if (csvText) {
- clipboard.copyTextToClipboard(csvText);
- }
- };
-
- var setPasteRowButtonEnablement = function (canEditFlag, isEnabled) {
- if (canEditFlag) {
- $("#btn-paste-row").prop('disabled', !isEnabled);
- }
- };
-
- var allTheRangesAreFullRows = function (ranges, columnDefinitions) {
- var colRangeBounds = ranges.map(function (range) {
- return [range.fromCell, range.toCell];
- });
-
- if(RangeSelectionHelper.isFirstColumnData(columnDefinitions)) {
- return _.isEqual(_.union.apply(null, colRangeBounds), [0, columnDefinitions.length - 1]);
- }
- return _.isEqual(_.union.apply(null, colRangeBounds), [1, columnDefinitions.length - 1]);
- };
-
- return copyData;
-});
+ return copyData;
+ });
diff --git a/web/pgadmin/static/js/selection/grid_selector.js b/web/pgadmin/static/js/selection/grid_selector.js
index 31aee69f..6317f44e 100644
--- a/web/pgadmin/static/js/selection/grid_selector.js
+++ b/web/pgadmin/static/js/selection/grid_selector.js
@@ -31,7 +31,7 @@ define(['jquery', 'sources/selection/column_selector', 'sources/selection/row_se
};
function handleSelectedRangesChanged(grid) {
- $("[data-id='checkbox-select-all']").prop("checked", isEntireGridSelected(grid));
+ $('[data-id=\'checkbox-select-all\']').prop('checked', isEntireGridSelected(grid));
}
function isEntireGridSelected(grid) {
@@ -44,7 +44,7 @@ define(['jquery', 'sources/selection/column_selector', 'sources/selection/row_se
if (isEntireGridSelected(grid)) {
deselect(grid);
} else {
- selectAll(grid)
+ selectAll(grid);
}
}
@@ -70,8 +70,8 @@ define(['jquery', 'sources/selection/column_selector', 'sources/selection/row_se
}
$.extend(this, {
- "init": init,
- "getColumnDefinitionsWithCheckboxes": getColumnDefinitionsWithCheckboxes
+ 'init': init,
+ 'getColumnDefinitionsWithCheckboxes': getColumnDefinitionsWithCheckboxes,
});
};
diff --git a/web/pgadmin/static/js/selection/range_boundary_navigator.js b/web/pgadmin/static/js/selection/range_boundary_navigator.js
index a268d245..f69540b9 100644
--- a/web/pgadmin/static/js/selection/range_boundary_navigator.js
+++ b/web/pgadmin/static/js/selection/range_boundary_navigator.js
@@ -99,13 +99,13 @@ define(['sources/selection/range_selection_helper'], function (RangeSelectionHel
var val = data[rowId][columnDefinitions[colId].pos];
if (val && _.isObject(val)) {
- val = "'" + JSON.stringify(val) + "'";
- } else if (val && typeof val != "number" && typeof val != "boolean") {
- val = "'" + val.toString() + "'";
+ val = '\'' + JSON.stringify(val) + '\'';
+ } else if (val && typeof val != 'number' && typeof val != 'boolean') {
+ val = '\'' + val.toString() + '\'';
} else if (_.isNull(val) || _.isUndefined(val)) {
val = '';
}
return val;
- }
+ },
};
});
\ No newline at end of file
diff --git a/web/pgadmin/static/js/selection/range_selection_helper.js b/web/pgadmin/static/js/selection/range_selection_helper.js
index 31ad3bf7..4bd55975 100644
--- a/web/pgadmin/static/js/selection/range_selection_helper.js
+++ b/web/pgadmin/static/js/selection/range_selection_helper.js
@@ -8,14 +8,14 @@ define(['slickgrid'], function () {
var isRangeSelected = function (selectedRanges, range) {
return _.any(selectedRanges, function (selectedRange) {
- return isSameRange(selectedRange, range)
- })
+ return isSameRange(selectedRange, range);
+ });
};
var removeRange = function (selectedRanges, range) {
return _.filter(selectedRanges, function (selectedRange) {
- return !(isSameRange(selectedRange, range))
- })
+ return !(isSameRange(selectedRange, range));
+ });
};
var addRange = function (ranges, range) {
@@ -26,15 +26,15 @@ define(['slickgrid'], function () {
var areAllRangesRows = function (ranges, grid) {
return _.every(ranges, function (range) {
return range.fromRow == range.toRow &&
- range.fromCell == 1 && range.toCell == grid.getColumns().length - 1
- })
+ range.fromCell == 1 && range.toCell == grid.getColumns().length - 1;
+ });
};
var areAllRangesColumns = function (ranges, grid) {
return _.every(ranges, function (range) {
return range.fromCell == range.toCell &&
- range.fromRow == 0 && range.toRow == grid.getDataLength() - 1
- })
+ range.fromRow == 0 && range.toRow == grid.getDataLength() - 1;
+ });
};
var rangeForRow = function (grid, rowId) {
@@ -46,8 +46,8 @@ define(['slickgrid'], function () {
};
function rangeForColumn(grid, columnIndex) {
- return new Slick.Range(0, columnIndex, grid.getDataLength() - 1, columnIndex)
- };
+ return new Slick.Range(0, columnIndex, grid.getDataLength() - 1, columnIndex);
+ }
var getRangeOfWholeGrid = function (grid) {
return new Slick.Range(0, 1, grid.getDataLength() - 1, grid.getColumns().length - 1);
@@ -73,6 +73,6 @@ define(['slickgrid'], function () {
rangeForColumn: rangeForColumn,
isEntireGridSelected: isEntireGridSelected,
getRangeOfWholeGrid: getRangeOfWholeGrid,
- isFirstColumnData: isFirstColumnData
- }
+ isFirstColumnData: isFirstColumnData,
+ };
});
\ No newline at end of file
diff --git a/web/pgadmin/static/js/selection/row_selector.js b/web/pgadmin/static/js/selection/row_selector.js
index 76a8c1a7..583f8a75 100644
--- a/web/pgadmin/static/js/selection/row_selector.js
+++ b/web/pgadmin/static/js/selection/row_selector.js
@@ -8,18 +8,18 @@ define(['jquery', 'sources/selection/range_selection_helper', 'slickgrid'], func
grid.getSelectionModel()
.onSelectedRangesChanged.subscribe(handleSelectedRangesChanged.bind(null, grid));
gridEventBus
- .subscribe(grid.onClick, handleClick.bind(null, grid))
+ .subscribe(grid.onClick, handleClick.bind(null, grid));
};
var handleClick = function (grid, event, args) {
if (grid.getColumns()[args.cell].id === 'row-header-column') {
- if (event.target.type != "checkbox") {
+ if (event.target.type != 'checkbox') {
var checkbox = $(event.target).find('input[type="checkbox"]');
toggleCheckbox($(checkbox));
}
updateRanges(grid, args.row);
}
- }
+ };
var handleSelectedRangesChanged = function (grid, event, ranges) {
$('[data-cell-type="row-header-checkbox"]:checked')
@@ -32,7 +32,7 @@ define(['jquery', 'sources/selection/range_selection_helper', 'slickgrid'], func
toggleCheckbox($checkbox);
}
});
- }
+ };
var updateRanges = function (grid, rowId) {
var selectionModel = grid.getSelectionModel();
@@ -51,13 +51,13 @@ define(['jquery', 'sources/selection/range_selection_helper', 'slickgrid'], func
}
}
selectionModel.setSelectedRanges(newRanges);
- }
+ };
var toggleCheckbox = function (checkbox) {
- if (checkbox.prop("checked")) {
- checkbox.prop("checked", false)
+ if (checkbox.prop('checked')) {
+ checkbox.prop('checked', false);
} else {
- checkbox.prop("checked", true)
+ checkbox.prop('checked', true);
}
};
@@ -70,15 +70,15 @@ define(['jquery', 'sources/selection/range_selection_helper', 'slickgrid'], func
formatter: function (rowIndex) {
return ''
- }
+ 'data-cell-type="row-header-checkbox"/>';
+ },
});
return columnDefinitions;
};
$.extend(this, {
- "init": init,
- "getColumnDefinitionsWithCheckboxes": getColumnDefinitionsWithCheckboxes
+ 'init': init,
+ 'getColumnDefinitionsWithCheckboxes': getColumnDefinitionsWithCheckboxes,
});
};
return RowSelector;
diff --git a/web/pgadmin/static/js/selection/set_staged_rows.js b/web/pgadmin/static/js/selection/set_staged_rows.js
index cace7282..55732e41 100644
--- a/web/pgadmin/static/js/selection/set_staged_rows.js
+++ b/web/pgadmin/static/js/selection/set_staged_rows.js
@@ -10,7 +10,7 @@
define(
[
'jquery',
- 'underscore'
+ 'underscore',
],
function ($, _) {
function disableButton(selector) {
@@ -54,7 +54,7 @@ define(
_.each(_.keys(gridRow), function (columnPos) {
if (_.contains(primaryKeyColumnIndices, Number(columnPos)))
rowToStage[columnPos] = gridRow[columnPos];
- })
+ });
}
return rowToStage;
}
@@ -71,7 +71,7 @@ define(
return stagedRows;
}
- var setStagedRows = function (e, args) {
+ var setStagedRows = function () {
var self = this;
function setStagedRows(rowsToStage) {
diff --git a/web/regression/javascript/browser/menu_spec.js b/web/regression/javascript/browser/menu_spec.js
index 09f136fb..8def5a0d 100644
--- a/web/regression/javascript/browser/menu_spec.js
+++ b/web/regression/javascript/browser/menu_spec.js
@@ -7,13 +7,15 @@
//
//////////////////////////////////////////////////////////////
-define(["browser/menu"
-], function () {
- describe("MenuItem", function () {
+define([
+ 'pgadmin',
+ 'browser/menu',
+], function (pgAdmin) {
+ describe('MenuItem', function () {
var MenuItem = pgAdmin.Browser.MenuItem;
var menuItem;
- describe("when we create a menu item", function () {
+ describe('when we create a menu item', function () {
describe('and it is disabled', function () {
beforeEach(function () {
menuItem = new MenuItem({enable: false, icon: 'fa fa-car'});
diff --git a/web/regression/javascript/fake_translations.js b/web/regression/javascript/fake_translations.js
index 9516fd63..a3d4f5bd 100644
--- a/web/regression/javascript/fake_translations.js
+++ b/web/regression/javascript/fake_translations.js
@@ -8,5 +8,5 @@
//////////////////////////////////////////////////////////////////////////
define(function () {
- return {}
+ return {};
});
\ No newline at end of file
diff --git a/web/regression/javascript/gettext_spec.js b/web/regression/javascript/gettext_spec.js
index 2ce98a23..54fc498d 100644
--- a/web/regression/javascript/gettext_spec.js
+++ b/web/regression/javascript/gettext_spec.js
@@ -7,45 +7,46 @@
//
//////////////////////////////////////////////////////////////////////////
-define(["sources/gettext", "translations"], function (gettext, translations) {
- describe("translate", function () {
- describe("when there is no translation", function () {
- it("returns the original string", function () {
- expect(gettext("something to be translated")).toEqual("something to be translated");
- });
-
- describe("when there are substitutions", function () {
- it("interpolates a substitution", function () {
- expect(gettext("translate text for %(person)s", {"person": "Sarah"})).toEqual("translate text for Sarah")
- });
-
- it("interpolates multiple substitutions", function () {
- expect(gettext("translate '%(text)s' for %(person)s",
- {
- "text": "constitution",
- "person": "Sarah"
- }
- )).toEqual("translate 'constitution' for Sarah")
- });
- });
+import gettext from 'sources/gettext';
+import translations from 'translations';
+describe('translate', function () {
+ describe('when there is no translation', function () {
+ it('returns the original string', function () {
+ expect(gettext('something to be translated')).toEqual('something to be translated');
});
- describe("when there is a translation", function () {
- beforeEach(function () {
- translations['something to be translated'] = 'etwas zum uebersetzen';
- translations['another translation for %(person)s'] = 'eine weitere Uebersetzung fuer %(person)s';
+ describe('when there are substitutions', function () {
+ it('interpolates a substitution', function () {
+ expect(gettext('translate text for %(person)s', {'person': 'Sarah'})).toEqual('translate text for Sarah');
});
- it("returns the translation", function () {
- expect(gettext("something to be translated")).toEqual("etwas zum uebersetzen");
+ it('interpolates multiple substitutions', function () {
+ expect(gettext('translate \'%(text)s\' for %(person)s',
+ {
+ 'text': 'constitution',
+ 'person': 'Sarah',
+ }
+ )).toEqual('translate \'constitution\' for Sarah');
});
+ });
+
+ });
+
+ describe('when there is a translation', function () {
+ beforeEach(function () {
+ translations['something to be translated'] = 'etwas zum uebersetzen';
+ translations['another translation for %(person)s'] = 'eine weitere Uebersetzung fuer %(person)s';
+ });
+
+ it('returns the translation', function () {
+ expect(gettext('something to be translated')).toEqual('etwas zum uebersetzen');
+ });
- describe("when there is a substitution", function () {
- it("interpolates the substitution", function () {
- expect(gettext("another translation for %(person)s", {"person": "Sarah"}))
- .toEqual("eine weitere Uebersetzung fuer Sarah");
- });
+ describe('when there is a substitution', function () {
+ it('interpolates the substitution', function () {
+ expect(gettext('another translation for %(person)s', {'person': 'Sarah'}))
+ .toEqual('eine weitere Uebersetzung fuer Sarah');
});
});
});
diff --git a/web/regression/javascript/selection/column_selector_spec.js b/web/regression/javascript/selection/column_selector_spec.js
index 947f4852..2cba0af5 100644
--- a/web/regression/javascript/selection/column_selector_spec.js
+++ b/web/regression/javascript/selection/column_selector_spec.js
@@ -1,235 +1,243 @@
-define(
- ["jquery",
- "underscore",
- "slickgrid/slick.grid",
- "sources/selection/column_selector",
- "slickgrid/slick.rowselectionmodel",
- "slickgrid"
- ],
- function ($, _, SlickGrid, ColumnSelector, RowSelectionModel, Slick) {
- describe("ColumnSelector", function () {
- var container, data, columns, options;
+//////////////////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2017, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////////////////
+
+import $ from 'jquery';
+
+import Slick from 'slickgrid';
+import 'slickgrid.grid';
+
+import RowSelectionModel from '../../../pgadmin/static/vendor/slickgrid/plugins/slick.rowselectionmodel';
+import ColumnSelector from '../../../pgadmin/static/js/selection/column_selector';
+
+
+describe('ColumnSelector', function () {
+ var container, data, columns, options;
+ beforeEach(function () {
+ container = $('
');
+ container.height(9999);
+
+ data = [{'some-column-name': 'first value', 'second column': 'second value'}];
+
+ columns = [
+ {
+ id: '1',
+ name: 'some-column-name',
+ },
+ {
+ id: '2',
+ name: 'second column',
+ },
+ {
+ name: 'some-non-selectable-column',
+ selectable: false,
+ },
+ ];
+ });
+
+ describe('when a column is not selectable', function () {
+ it('does not create a checkbox for selecting the column', function () {
+ var checkboxColumn = {
+ name: 'some-column-name-4',
+ selectable: false,
+ };
+ columns.push(checkboxColumn);
+
+ setupGrid(columns);
+
+ expect(container.find('.slick-header-columns input').length).toBe(2);
+ });
+ });
+
+ it('renders a checkbox in the column header', function () {
+ setupGrid(columns);
+
+ expect(container.find('.slick-header-columns input').length).toBe(2);
+ });
+
+ it('displays the name of the column', function () {
+ setupGrid(columns);
+
+ expect($(container.find('.slick-header-columns .slick-column-name')[0]).text())
+ .toContain('some-column-name');
+ expect($(container.find('.slick-header-columns .slick-column-name')[1]).text())
+ .toContain('second column');
+ });
+
+ it('preserves the other attributes of column definitions', function () {
+ var columnSelector = new ColumnSelector();
+ var selectableColumns = columnSelector.getColumnDefinitionsWithCheckboxes(columns);
+
+ expect(selectableColumns[0].id).toBe('1');
+ });
+
+ describe('selecting columns', function () {
+ var grid, rowSelectionModel;
+ beforeEach(function () {
+ var columnSelector = new ColumnSelector();
+ columns = columnSelector.getColumnDefinitionsWithCheckboxes(columns);
+ 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, options);
+
+ rowSelectionModel = new RowSelectionModel();
+ grid.setSelectionModel(rowSelectionModel);
+
+ grid.registerPlugin(columnSelector);
+ grid.invalidate();
+ $('body').append(container);
+ });
+
+ afterEach(function () {
+ $('body').find(container).remove();
+ });
+
+ describe('when the user clicks a column header', function () {
+ it('selects the column', function () {
+ container.find('.slick-header-column')[0].click();
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ expectOnlyTheFirstColumnToBeSelected(selectedRanges);
+ });
+ });
+
+ describe('when the user clicks additional column headers', function () {
+ beforeEach(function () {
+ container.find('.slick-header-column')[1].click();
+ });
+
+ it('selects additional columns', function () {
+ container.find('.slick-header-column')[0].click();
+
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ var column1 = selectedRanges[0];
+
+ expect(selectedRanges.length).toEqual(2);
+ expect(column1.fromCell).toBe(1);
+ expect(column1.toCell).toBe(1);
+
+ var column2 = selectedRanges[1];
+
+ expect(column2.fromCell).toBe(0);
+ expect(column2.toCell).toBe(0);
+ });
+ });
+
+ describe('when the user clicks a column header checkbox', function () {
+ it('selects the column', function () {
+ container.find('.slick-header-columns input')[0].click();
+
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ expectOnlyTheFirstColumnToBeSelected(selectedRanges);
+ });
+
+ it('checks the checkbox', function () {
+ container.find('.slick-header-column')[1].click();
+ expect($(container.find('.slick-header-columns input')[1]).is(':checked')).toBeTruthy();
+ });
+ });
+
+ describe('when a row is selected', function () {
beforeEach(function () {
- container = $("");
- container.height(9999);
-
- data = [{'some-column-name': 'first value', 'second column': 'second value'}];
-
- columns = [
- {
- id: '1',
- name: 'some-column-name',
- },
- {
- id: '2',
- name: 'second column',
- },
- {
- name: 'some-non-selectable-column',
- selectable: false
- }
- ]
+ var selectedRanges = [new Slick.Range(0, 0, 0, 1)];
+ rowSelectionModel.setSelectedRanges(selectedRanges);
});
- describe("when a column is not selectable", function () {
- it("does not create a checkbox for selecting the column", function () {
- var checkboxColumn = {
- name: 'some-column-name-4',
- selectable: false
- };
- columns.push(checkboxColumn);
+ it('deselects the row', function () {
+ container.find('.slick-header-column')[1].click();
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
- setupGrid(columns);
+ expect(selectedRanges.length).toBe(1);
- expect(container.find('.slick-header-columns input').length).toBe(2)
- });
+ var column = selectedRanges[0];
+
+ expect(column.fromCell).toBe(1);
+ expect(column.toCell).toBe(1);
+ expect(column.fromRow).toBe(0);
+ expect(column.toRow).toBe(9);
});
+ });
- it("renders a checkbox in the column header", function () {
- setupGrid(columns);
+ describe('clicking a second time', function () {
+ beforeEach(function () {
+ container.find('.slick-header-column')[1].click();
+ });
- expect(container.find('.slick-header-columns input').length).toBe(2)
+ it('unchecks checkbox', function () {
+ container.find('.slick-header-column')[1].click();
+ expect($(container.find('.slick-header-columns input')[1]).is(':checked')).toBeFalsy();
});
- it("displays the name of the column", function () {
- setupGrid(columns);
+ it('deselects the column', function () {
+ container.find('.slick-header-column')[1].click();
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
- expect($(container.find('.slick-header-columns .slick-column-name')[0]).text())
- .toContain('some-column-name');
- expect($(container.find('.slick-header-columns .slick-column-name')[1]).text())
- .toContain('second column');
+ expect(selectedRanges.length).toEqual(0);
});
+ });
- it("preserves the other attributes of column definitions", function () {
- var columnSelector = new ColumnSelector();
- var selectableColumns = columnSelector.getColumnDefinitionsWithCheckboxes(columns);
+ describe('when the column is not selectable', function () {
+ it('does not select the column', function () {
+ $(container.find('.slick-header-column:contains(some-non-selectable-column)')).click();
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
- expect(selectableColumns[0].id).toBe('1');
+ expect(selectedRanges.length).toEqual(0);
});
+ });
- describe("selecting columns", function () {
- var grid, rowSelectionModel;
- beforeEach(function () {
- var columnSelector = new ColumnSelector();
- columns = columnSelector.getColumnDefinitionsWithCheckboxes(columns);
- data = [];
- for (var i = 0; i < 10; i++) {
- data.push({'some-column-name': 'some-value-' + i, 'second column': 'second value ' + i});
- }
- grid = new SlickGrid(container, data, columns, options);
-
- rowSelectionModel = new RowSelectionModel();
- grid.setSelectionModel(rowSelectionModel);
-
- grid.registerPlugin(columnSelector);
- grid.invalidate();
- $("body").append(container);
- });
-
- afterEach(function () {
- $("body").find(container).remove();
- });
-
- describe("when the user clicks a column header", function () {
- it("selects the column", function () {
- container.find('.slick-header-column')[0].click();
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- expectOnlyTheFirstColumnToBeSelected(selectedRanges);
- });
- });
-
- describe("when the user clicks additional column headers", function () {
- beforeEach(function () {
- container.find('.slick-header-column')[1].click();
- });
-
- it("selects additional columns", function () {
- container.find('.slick-header-column')[0].click();
-
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- var column1 = selectedRanges[0];
-
- expect(selectedRanges.length).toEqual(2);
- expect(column1.fromCell).toBe(1);
- expect(column1.toCell).toBe(1);
-
- var column2 = selectedRanges[1];
-
- expect(column2.fromCell).toBe(0);
- expect(column2.toCell).toBe(0);
- });
- });
-
- describe("when the user clicks a column header checkbox", function () {
- it("selects the column", function () {
- container.find('.slick-header-columns input')[0].click();
-
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- expectOnlyTheFirstColumnToBeSelected(selectedRanges);
- });
-
- it("checks the checkbox", function () {
- container.find('.slick-header-column')[1].click();
- expect($(container.find('.slick-header-columns input')[1]).is(':checked')).toBeTruthy();
- });
- });
-
- describe("when a row is selected", function () {
- beforeEach(function () {
- var selectedRanges = [new Slick.Range(0, 0, 0, 1)];
- rowSelectionModel.setSelectedRanges(selectedRanges);
- });
-
- it("deselects the row", function () {
- container.find('.slick-header-column')[1].click();
- var selectedRanges = rowSelectionModel.getSelectedRanges();
-
- expect(selectedRanges.length).toBe(1);
-
- var column = selectedRanges[0];
-
- expect(column.fromCell).toBe(1);
- expect(column.toCell).toBe(1);
- expect(column.fromRow).toBe(0);
- expect(column.toRow).toBe(9);
- })
- });
-
- describe("clicking a second time", function () {
- beforeEach(function () {
- container.find('.slick-header-column')[1].click();
- });
-
- it("unchecks checkbox", function () {
- container.find('.slick-header-column')[1].click();
- expect($(container.find('.slick-header-columns input')[1]).is(':checked')).toBeFalsy();
- });
-
- it("deselects the column", function () {
- container.find('.slick-header-column')[1].click();
- var selectedRanges = rowSelectionModel.getSelectedRanges();
-
- expect(selectedRanges.length).toEqual(0);
- })
- });
-
- describe("when the column is not selectable", function () {
- it("does not select the column", function () {
- $(container.find('.slick-header-column:contains(some-non-selectable-column)')).click();
- var selectedRanges = rowSelectionModel.getSelectedRanges();
-
- expect(selectedRanges.length).toEqual(0);
- });
- });
-
- describe("when the column is deselected through setSelectedRanges", function () {
- beforeEach(function () {
- container.find('.slick-header-column')[1].click();
- });
-
- it("unchecks the checkbox", function () {
- rowSelectionModel.setSelectedRanges([]);
-
- expect($(container.find('.slick-header-columns input')[1])
- .is(':checked')).toBeFalsy();
- });
- });
-
- describe("when a non-column range was already selected", function () {
- beforeEach(function () {
- var selectedRanges = [new Slick.Range(0, 0, 1, 0)];
- rowSelectionModel.setSelectedRanges(selectedRanges);
- });
-
- it("deselects the non-column range", function () {
- container.find('.slick-header-column')[0].click();
-
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- expectOnlyTheFirstColumnToBeSelected(selectedRanges);
- })
- });
+ describe('when the column is deselected through setSelectedRanges', function () {
+ beforeEach(function () {
+ container.find('.slick-header-column')[1].click();
});
- var setupGrid = function (columns) {
- var columnSelector = new ColumnSelector();
- columns = columnSelector.getColumnDefinitionsWithCheckboxes(columns);
- var grid = new SlickGrid(container, data, columns, options);
+ it('unchecks the checkbox', function () {
+ rowSelectionModel.setSelectedRanges([]);
- var rowSelectionModel = new RowSelectionModel();
- grid.setSelectionModel(rowSelectionModel);
+ expect($(container.find('.slick-header-columns input')[1])
+ .is(':checked')).toBeFalsy();
+ });
+ });
- grid.registerPlugin(columnSelector);
- grid.invalidate();
- };
+ describe('when a non-column range was already selected', function () {
+ beforeEach(function () {
+ var selectedRanges = [new Slick.Range(0, 0, 1, 0)];
+ rowSelectionModel.setSelectedRanges(selectedRanges);
+ });
- function expectOnlyTheFirstColumnToBeSelected(selectedRanges) {
- var row = selectedRanges[0];
+ it('deselects the non-column range', function () {
+ container.find('.slick-header-column')[0].click();
- expect(selectedRanges.length).toEqual(1);
- expect(row.fromCell).toBe(0);
- expect(row.toCell).toBe(0);
- expect(row.fromRow).toBe(0);
- expect(row.toRow).toBe(9);
- }
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ expectOnlyTheFirstColumnToBeSelected(selectedRanges);
+ });
});
});
+
+ var setupGrid = function (columns) {
+ var columnSelector = new ColumnSelector();
+ columns = columnSelector.getColumnDefinitionsWithCheckboxes(columns);
+ var grid = new Slick.Grid(container, data, columns, options);
+
+ var rowSelectionModel = new RowSelectionModel();
+ grid.setSelectionModel(rowSelectionModel);
+
+ grid.registerPlugin(columnSelector);
+ grid.invalidate();
+ };
+
+ function expectOnlyTheFirstColumnToBeSelected(selectedRanges) {
+ var row = selectedRanges[0];
+
+ expect(selectedRanges.length).toEqual(1);
+ expect(row.fromCell).toBe(0);
+ expect(row.toCell).toBe(0);
+ expect(row.fromRow).toBe(0);
+ expect(row.toRow).toBe(9);
+ }
+});
diff --git a/web/regression/javascript/selection/copy_data_spec.js b/web/regression/javascript/selection/copy_data_spec.js
index affad66e..ffb0deca 100644
--- a/web/regression/javascript/selection/copy_data_spec.js
+++ b/web/regression/javascript/selection/copy_data_spec.js
@@ -1,119 +1,128 @@
-define(
- ["jquery",
- "slickgrid/slick.grid",
- "slickgrid/slick.rowselectionmodel",
- "sources/selection/copy_data",
- "sources/selection/clipboard",
- "sources/selection/range_selection_helper"
- ],
- function ($, SlickGrid, RowSelectionModel, copyData, clipboard, RangeSelectionHelper) {
- describe('copyData', function () {
- var grid, sqlEditor;
-
- beforeEach(function () {
- var data = [[1, "leopord", "12"],
- [2, "lion", "13"],
- [3, "puma", "9"]];
-
- var columns = [{
- name: "id",
- pos: 0,
- label: "id
numeric",
- cell: "number",
- can_edit: false,
- type: "numeric"
- }, {
- name: "brand",
- pos: 1,
- label: "flavor
character varying",
- cell: "string",
- can_edit: false,
- type: "character varying"
- }, {
- name: "size",
- pos: 2,
- label: "size
numeric",
- cell: "number",
- can_edit: false,
- type: "numeric"
- }
- ]
- ;
- var gridContainer = $("");
- $("body").append(gridContainer);
- $("body").append("");
- grid = new Slick.Grid("#grid", data, columns, {});
- grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false}));
- sqlEditor = {slickgrid: grid};
- });
+//////////////////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2017, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////////////////
+
+import $ from 'jquery';
+
+import Slick from 'slickgrid';
+import 'slickgrid.grid';
+
+import clipboard from '../../../pgadmin/static/js/selection/clipboard';
+import copyData from '../../../pgadmin/static/js/selection/copy_data';
+
+import RangeSelectionHelper from 'sources/selection/range_selection_helper';
+
+describe('copyData', function () {
+ var grid, sqlEditor;
+
+ beforeEach(function () {
+ var data = [[1, 'leopord', '12'],
+ [2, 'lion', '13'],
+ [3, 'puma', '9']];
+
+ var columns = [{
+ name: 'id',
+ pos: 0,
+ label: 'id
numeric',
+ cell: 'number',
+ can_edit: false,
+ type: 'numeric',
+ }, {
+ name: 'brand',
+ pos: 1,
+ label: 'flavor
character varying',
+ cell: 'string',
+ can_edit: false,
+ type: 'character varying',
+ }, {
+ name: 'size',
+ pos: 2,
+ label: 'size
numeric',
+ cell: 'number',
+ can_edit: false,
+ type: 'numeric',
+ },
+ ]
+ ;
+ var gridContainer = $('');
+ $('body').append(gridContainer);
+ $('body').append('');
+ grid = new Slick.Grid('#grid', data, columns, {});
+ grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false}));
+ sqlEditor = {slickgrid: grid};
+ });
- afterEach(function() {
- $("body").remove('#grid');
- $("body").remove('#btn-paste-row');
- });
+ afterEach(function () {
+ $('body').remove('#grid');
+ $('body').remove('#btn-paste-row');
+ });
- describe("when rows are selected", function () {
- beforeEach(function () {
- grid.getSelectionModel().setSelectedRanges([
- RangeSelectionHelper.rangeForRow(grid, 0),
- RangeSelectionHelper.rangeForRow(grid, 2)]
- );
- });
+ describe('when rows are selected', function () {
+ beforeEach(function () {
+ grid.getSelectionModel().setSelectedRanges([
+ RangeSelectionHelper.rangeForRow(grid, 0),
+ RangeSelectionHelper.rangeForRow(grid, 2)]
+ );
+ });
- it("copies them", function () {
- spyOn(clipboard, 'copyTextToClipboard');
+ it('copies them', function () {
+ spyOn(clipboard, 'copyTextToClipboard');
- copyData.apply(sqlEditor);
+ copyData.apply(sqlEditor);
- expect(sqlEditor.copied_rows.length).toBe(2);
+ expect(sqlEditor.copied_rows.length).toBe(2);
- expect(clipboard.copyTextToClipboard).toHaveBeenCalled();
- expect(clipboard.copyTextToClipboard.calls.mostRecent().args[0]).toContain("1,'leopord','12'");
- expect(clipboard.copyTextToClipboard.calls.mostRecent().args[0]).toContain("3,'puma','9'");
- });
+ expect(clipboard.copyTextToClipboard).toHaveBeenCalled();
+ expect(clipboard.copyTextToClipboard.calls.mostRecent().args[0]).toContain('1,\'leopord\',\'12\'');
+ expect(clipboard.copyTextToClipboard.calls.mostRecent().args[0]).toContain('3,\'puma\',\'9\'');
+ });
- describe("when the user can edit the grid", function () {
- it("enables the paste row button", function () {
- copyData.apply(_.extend({can_edit: true}, sqlEditor));
+ describe('when the user can edit the grid', function () {
+ it('enables the paste row button', function () {
+ copyData.apply(_.extend({can_edit: true}, sqlEditor));
- expect($("#btn-paste-row").prop('disabled')).toBe(false);
- });
- });
+ expect($('#btn-paste-row').prop('disabled')).toBe(false);
});
+ });
+ });
- describe("when a column is selected", function () {
- beforeEach(function () {
- var firstColumn = new Slick.Range(0, 0, 2, 0);
- grid.getSelectionModel().setSelectedRanges([firstColumn])
- });
+ describe('when a column is selected', function () {
+ beforeEach(function () {
+ var firstColumn = new Slick.Range(0, 0, 2, 0);
+ grid.getSelectionModel().setSelectedRanges([firstColumn]);
+ });
- it("copies text to the clipboard", function () {
- spyOn(clipboard, 'copyTextToClipboard');
+ it('copies text to the clipboard', function () {
+ spyOn(clipboard, 'copyTextToClipboard');
- copyData.apply(sqlEditor);
+ copyData.apply(sqlEditor);
- expect(clipboard.copyTextToClipboard).toHaveBeenCalled();
+ expect(clipboard.copyTextToClipboard).toHaveBeenCalled();
- var copyArg = clipboard.copyTextToClipboard.calls.mostRecent().args[0];
- var rowStrings = copyArg.split('\n');
- expect(rowStrings[0]).toBe("1");
- expect(rowStrings[1]).toBe("2");
- expect(rowStrings[2]).toBe("3");
- });
+ var copyArg = clipboard.copyTextToClipboard.calls.mostRecent().args[0];
+ var rowStrings = copyArg.split('\n');
+ expect(rowStrings[0]).toBe('1');
+ expect(rowStrings[1]).toBe('2');
+ expect(rowStrings[2]).toBe('3');
+ });
- it("sets copied_rows to empty", function () {
- copyData.apply(sqlEditor);
+ it('sets copied_rows to empty', function () {
+ copyData.apply(sqlEditor);
- expect(sqlEditor.copied_rows.length).toBe(0);
- });
+ expect(sqlEditor.copied_rows.length).toBe(0);
+ });
- describe("when the user can edit the grid", function () {
- it("disables the paste row button", function () {
- copyData.apply(_.extend({can_edit: true}, sqlEditor));
+ describe('when the user can edit the grid', function () {
+ it('disables the paste row button', function () {
+ copyData.apply(_.extend({can_edit: true}, sqlEditor));
- expect($("#btn-paste-row").prop('disabled')).toBe(true);
- });
- });
+ expect($('#btn-paste-row').prop('disabled')).toBe(true);
});
});
});
+});
\ No newline at end of file
diff --git a/web/regression/javascript/selection/grid_selector_spec.js b/web/regression/javascript/selection/grid_selector_spec.js
index a74a66f9..22886b77 100644
--- a/web/regression/javascript/selection/grid_selector_spec.js
+++ b/web/regression/javascript/selection/grid_selector_spec.js
@@ -1,126 +1,127 @@
-define(["jquery",
- "underscore",
- "slickgrid/slick.grid",
- "slickgrid/slick.rowselectionmodel",
- "sources/selection/grid_selector"
- ],
- function ($, _, SlickGrid, RowSelectionModel, GridSelector) {
- describe("GridSelector", function () {
- var container, data, columns, gridSelector, rowSelectionModel;
+import $ from 'jquery';
- beforeEach(function () {
- container = $("");
- container.height(9999);
- columns = [{
- id: '1',
- name: 'some-column-name',
- }, {
- id: '2',
- name: 'second column',
- }];
-
- gridSelector = new GridSelector();
- columns = gridSelector.getColumnDefinitionsWithCheckboxes(columns);
-
- data = [];
- for (var i = 0; i < 10; i++) {
- data.push({'some-column-name': 'some-value-' + i, 'second column': 'second value ' + i});
- }
- var grid = new SlickGrid(container, data, columns);
-
- rowSelectionModel = new RowSelectionModel();
- grid.setSelectionModel(rowSelectionModel);
-
- grid.registerPlugin(gridSelector);
- grid.invalidate();
-
- $("body").append(container);
- });
+import Slick from 'slickgrid';
+import 'slickgrid.grid';
- afterEach(function () {
- $("body").find(container).remove();
- });
+import RowSelectionModel from 'slickgrid.rowselectionmodel';
- it("renders an additional column on the left for selecting rows", function () {
- expect(columns.length).toBe(3);
+import GridSelector from 'sources/selection/grid_selector';
- var leftmostColumn = columns[0];
- expect(leftmostColumn.id).toBe('row-header-column');
- });
+describe('GridSelector', function () {
+ var container, data, columns, gridSelector, rowSelectionModel;
- it("renders checkboxes for selecting columns", function () {
- expect(container.find('[data-test="output-column-header"] input').length).toBe(2)
- });
+ beforeEach(function () {
+ container = $('');
+ container.height(9999);
+ columns = [{
+ id: '1',
+ name: 'some-column-name',
+ }, {
+ id: '2',
+ name: 'second column',
+ }];
- it("renders a checkbox for selecting all the cells", function () {
- expect(container.find("[title='Select/Deselect All']").length).toBe(1);
- });
+ gridSelector = new GridSelector();
+ columns = gridSelector.getColumnDefinitionsWithCheckboxes(columns);
+
+ data = [];
+ for (var i = 0; i < 10; i++) {
+ data.push({'some-column-name': 'some-value-' + i, 'second column': 'second value ' + i});
+ }
+ var grid = new Slick.Grid(container, data, columns);
+
+ rowSelectionModel = new RowSelectionModel();
+ grid.setSelectionModel(rowSelectionModel);
+
+ grid.registerPlugin(gridSelector);
+ grid.invalidate();
+
+ $('body').append(container);
+ });
+
+ afterEach(function () {
+ $('body').find(container).remove();
+ });
+
+ it('renders an additional column on the left for selecting rows', function () {
+ expect(columns.length).toBe(3);
+
+ var leftmostColumn = columns[0];
+ expect(leftmostColumn.id).toBe('row-header-column');
+ });
+
+ it('renders checkboxes for selecting columns', function () {
+ expect(container.find('[data-test="output-column-header"] input').length).toBe(2);
+ });
+
+ it('renders a checkbox for selecting all the cells', function () {
+ expect(container.find('[title=\'Select/Deselect All\']').length).toBe(1);
+ });
+
+ describe('when the cell for the select/deselect all is clicked', function () {
+ it('selects the whole grid', function () {
+ container.find('[title=\'Select/Deselect All\']').parent().click();
+
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ expect(selectedRanges.length).toBe(1);
+ var selectedRange = selectedRanges[0];
+ expect(selectedRange.fromCell).toBe(1);
+ expect(selectedRange.toCell).toBe(2);
+ expect(selectedRange.fromRow).toBe(0);
+ expect(selectedRange.toRow).toBe(9);
+ });
+
+ it('checks the checkbox', function () {
+ container.find('[title=\'Select/Deselect All\']').parent().click();
+
+ expect($(container.find('[data-id=\'checkbox-select-all\']')).is(':checked')).toBeTruthy();
+ });
+ });
- describe("when the cell for the select/deselect all is clicked", function () {
- it("selects the whole grid", function () {
- container.find("[title='Select/Deselect All']").parent().click();
+ describe('when the main checkbox in the corner gets selected', function () {
+ it('unchecks all the columns', function () {
+ container.find('[title=\'Select/Deselect All\']').click();
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- expect(selectedRanges.length).toBe(1);
- var selectedRange = selectedRanges[0];
- expect(selectedRange.fromCell).toBe(1);
- expect(selectedRange.toCell).toBe(2);
- expect(selectedRange.fromRow).toBe(0);
- expect(selectedRange.toRow).toBe(9);
- });
+ expect($(container.find('.slick-header-columns input')[1]).is(':checked')).toBeFalsy();
+ expect($(container.find('.slick-header-columns input')[2]).is(':checked')).toBeFalsy();
+ });
- it("checks the checkbox", function () {
- container.find("[title='Select/Deselect All']").parent().click();
+ it('selects all the cells', function () {
+ container.find('[title=\'Select/Deselect All\']').click();
+
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ expect(selectedRanges.length).toBe(1);
+ var selectedRange = selectedRanges[0];
+ expect(selectedRange.fromCell).toBe(1);
+ expect(selectedRange.toCell).toBe(2);
+ expect(selectedRange.fromRow).toBe(0);
+ expect(selectedRange.toRow).toBe(9);
+ });
- expect($(container.find("[data-id='checkbox-select-all']")).is(':checked')).toBeTruthy();
- })
+ describe('when the main checkbox in the corner gets deselected', function () {
+ beforeEach(function () {
+ container.find('[title=\'Select/Deselect All\']').click();
});
- describe("when the main checkbox in the corner gets selected", function () {
- it("unchecks all the columns", function () {
- container.find("[title='Select/Deselect All']").click();
-
- expect($(container.find('.slick-header-columns input')[1]).is(':checked')).toBeFalsy();
- expect($(container.find('.slick-header-columns input')[2]).is(':checked')).toBeFalsy();
- });
-
- it("selects all the cells", function () {
- container.find("[title='Select/Deselect All']").click();
-
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- expect(selectedRanges.length).toBe(1);
- var selectedRange = selectedRanges[0];
- expect(selectedRange.fromCell).toBe(1);
- expect(selectedRange.toCell).toBe(2);
- expect(selectedRange.fromRow).toBe(0);
- expect(selectedRange.toRow).toBe(9);
- });
-
- describe("when the main checkbox in the corner gets deselected", function () {
- beforeEach(function () {
- container.find("[title='Select/Deselect All']").click();
- });
-
- it("deselects all the cells", function () {
- container.find("[title='Select/Deselect All']").click();
-
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- expect(selectedRanges.length).toBe(0);
- });
- });
-
- describe("and then the underlying selection changes", function () {
- beforeEach(function () {
- container.find("[title='Select/Deselect All']").click();
- });
-
- it("unchecks the main checkbox", function () {
- var ranges = [new Slick.Range(0, 0, 0, 1)];
- rowSelectionModel.setSelectedRanges(ranges);
-
- expect($(container.find("[title='Select/Deselect All']")).is(':checked')).toBeFalsy();
- });
- });
+ it('deselects all the cells', function () {
+ container.find('[title=\'Select/Deselect All\']').click();
+
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ expect(selectedRanges.length).toBe(0);
+ });
+ });
+
+ describe('and then the underlying selection changes', function () {
+ beforeEach(function () {
+ container.find('[title=\'Select/Deselect All\']').click();
+ });
+
+ it('unchecks the main checkbox', function () {
+ var ranges = [new Slick.Range(0, 0, 0, 1)];
+ rowSelectionModel.setSelectedRanges(ranges);
+
+ expect($(container.find('[title=\'Select/Deselect All\']')).is(':checked')).toBeFalsy();
});
});
});
+});
\ No newline at end of file
diff --git a/web/regression/javascript/selection/range_boundary_navigator_spec.js b/web/regression/javascript/selection/range_boundary_navigator_spec.js
index 8376d0a7..6e9173d1 100644
--- a/web/regression/javascript/selection/range_boundary_navigator_spec.js
+++ b/web/regression/javascript/selection/range_boundary_navigator_spec.js
@@ -1,8 +1,20 @@
-define(['sources/selection/range_boundary_navigator'], function (rangeBoundaryNavigator) {
-
- describe("#getUnion", function () {
- describe("when the ranges completely overlap", function () {
- it("returns a list with that range", function () {
+//////////////////////////////////////////////////////////////////////////
+//
+// pgAdmin 4 - PostgreSQL Tools
+//
+// Copyright (C) 2013 - 2017, The pgAdmin Development Team
+// This software is released under the PostgreSQL Licence
+//
+//////////////////////////////////////////////////////////////////////////
+
+import rangeBoundaryNavigator from 'sources/selection/range_boundary_navigator';
+import Slick from 'slickgrid';
+
+describe('RangeBoundaryNavigator', function () {
+
+ describe('#getUnion', function () {
+ describe('when the ranges completely overlap', function () {
+ it('returns a list with that range', function () {
var ranges = [[1, 4], [1, 4], [1, 4]];
var union = rangeBoundaryNavigator.getUnion(ranges);
@@ -11,8 +23,8 @@ define(['sources/selection/range_boundary_navigator'], function (rangeBoundaryNa
});
});
- describe("when the ranges all overlap partially or touch", function () {
- it("returns one long range", function () {
+ describe('when the ranges all overlap partially or touch', function () {
+ it('returns one long range', function () {
var rangeBounds = [[3, 6], [1, 4], [7, 14]];
var union = rangeBoundaryNavigator.getUnion(rangeBounds);
@@ -20,7 +32,7 @@ define(['sources/selection/range_boundary_navigator'], function (rangeBoundaryNa
expect(union).toEqual([[1, 14]]);
});
- it("returns them in order from lowest to highest", function () {
+ it('returns them in order from lowest to highest', function () {
var rangeBounds = [[3, 6], [2, 3], [10, 12]];
var union = rangeBoundaryNavigator.getUnion(rangeBounds);
@@ -28,9 +40,9 @@ define(['sources/selection/range_boundary_navigator'], function (rangeBoundaryNa
expect(union).toEqual([[2, 6], [10, 12]]);
});
- describe("when one range completely overlaps another", function() {
+ describe('when one range completely overlaps another', function() {
- it("returns them in order from lowest to highest", function () {
+ it('returns them in order from lowest to highest', function () {
var rangeBounds = [[9, 14], [2, 3], [11, 13]];
var union = rangeBoundaryNavigator.getUnion(rangeBounds);
@@ -39,19 +51,19 @@ define(['sources/selection/range_boundary_navigator'], function (rangeBoundaryNa
});
});
- describe("when one range is a subset of another", function () {
- it("returns the larger range", function () {
+ describe('when one range is a subset of another', function () {
+ it('returns the larger range', function () {
var rangeBounds = [[2, 6], [1, 14], [8, 10]];
var union = rangeBoundaryNavigator.getUnion(rangeBounds);
expect(union).toEqual([[1, 14]]);
- })
- })
+ });
+ });
});
- describe("when the ranges do not touch", function () {
- it("returns them in order from lowest to highest", function () {
+ describe('when the ranges do not touch', function () {
+ it('returns them in order from lowest to highest', function () {
var rangeBounds = [[3, 6], [1, 1], [8, 10]];
var union = rangeBoundaryNavigator.getUnion(rangeBounds);
@@ -62,8 +74,8 @@ define(['sources/selection/range_boundary_navigator'], function (rangeBoundaryNa
});
- describe("#mapDimensionBoundaryUnion", function () {
- it("returns a list of the results of the callback", function () {
+ describe('#mapDimensionBoundaryUnion', function () {
+ it('returns a list of the results of the callback', function () {
var rangeBounds = [[0, 1], [3, 3]];
var callback = function () {
return 'hello';
@@ -72,7 +84,7 @@ define(['sources/selection/range_boundary_navigator'], function (rangeBoundaryNa
expect(result).toEqual(['hello', 'hello', 'hello']);
});
- it("calls the callback with each index in the dimension", function () {
+ it('calls the callback with each index in the dimension', function () {
var rangeBounds = [[0, 1], [3, 3]];
var callback = jasmine.createSpy('callbackSpy');
rangeBoundaryNavigator.mapDimensionBoundaryUnion(rangeBounds, callback);
@@ -80,7 +92,7 @@ define(['sources/selection/range_boundary_navigator'], function (rangeBoundaryNa
});
});
- describe("#mapOver2DArray", function () {
+ describe('#mapOver2DArray', function () {
var data, rowCollector, processCell;
beforeEach(function () {
data = [[0, 1, 2, 3], [2, 2, 2, 2], [4, 5, 6, 7]];
@@ -92,66 +104,66 @@ define(['sources/selection/range_boundary_navigator'], function (rangeBoundaryNa
};
});
- it("calls the callback for each item in the ranges", function () {
+ it('calls the callback for each item in the ranges', function () {
var rowRanges = [[0, 0], [2, 2]];
var colRanges = [[0, 3]];
var selectionResult = rangeBoundaryNavigator.mapOver2DArray(rowRanges, colRanges, processCell, rowCollector);
- expect(selectionResult).toEqual(["[0,1,2,3]", "[4,5,6,7]"]);
+ expect(selectionResult).toEqual(['[0,1,2,3]', '[4,5,6,7]']);
});
- describe("when the ranges are out of order/duplicated", function () {
+ describe('when the ranges are out of order/duplicated', function () {
var rowRanges, colRanges;
beforeEach(function () {
rowRanges = [[2, 2], [2, 2], [0, 0]];
colRanges = [[0, 3]];
});
- it("uses the union of the ranges", function () {
- spyOn(rangeBoundaryNavigator, "getUnion").and.callThrough();
+ it('uses the union of the ranges', function () {
+ spyOn(rangeBoundaryNavigator, 'getUnion').and.callThrough();
var selectionResult = rangeBoundaryNavigator.mapOver2DArray(rowRanges, colRanges, processCell, rowCollector);
expect(rangeBoundaryNavigator.getUnion).toHaveBeenCalledWith(rowRanges);
expect(rangeBoundaryNavigator.getUnion).toHaveBeenCalledWith(colRanges);
- expect(selectionResult).toEqual(["[0,1,2,3]", "[4,5,6,7]"]);
+ expect(selectionResult).toEqual(['[0,1,2,3]', '[4,5,6,7]']);
});
});
});
- describe("#rangesToCsv", function () {
+ describe('#rangesToCsv', function () {
var data, columnDefinitions, ranges;
beforeEach(function () {
- data = [[1, "leopard", "12"],
- [2, "lion", "13"],
- [3, "cougar", "9"],
- [4, "tiger", "10"]];
+ data = [[1, 'leopard', '12'],
+ [2, 'lion', '13'],
+ [3, 'cougar', '9'],
+ [4, 'tiger', '10']];
columnDefinitions = [{name: 'id', pos: 0}, {name: 'animal', pos: 1}, {name: 'size', pos: 2}];
ranges = [new Slick.Range(0, 0, 0, 2), new Slick.Range(3, 0, 3, 2)];
});
- it("returns csv for the provided ranges", function () {
+ it('returns csv for the provided ranges', function () {
var csvResult = rangeBoundaryNavigator.rangesToCsv(data, columnDefinitions, ranges);
- expect(csvResult).toEqual("1,'leopard','12'\n4,'tiger','10'");
+ expect(csvResult).toEqual('1,\'leopard\',\'12\'\n4,\'tiger\',\'10\'');
});
- describe("when there is an extra column with checkboxes", function () {
+ describe('when there is an extra column with checkboxes', function () {
beforeEach(function () {
columnDefinitions = [{name: 'not-a-data-column'}, {name: 'id', pos: 0}, {name: 'animal', pos: 1}, {
name: 'size',
- pos: 2
+ pos: 2,
}];
ranges = [new Slick.Range(0, 0, 0, 3), new Slick.Range(3, 0, 3, 3)];
});
- it("returns csv for the columns with data", function () {
+ it('returns csv for the columns with data', function () {
var csvResult = rangeBoundaryNavigator.rangesToCsv(data, columnDefinitions, ranges);
- expect(csvResult).toEqual("1,'leopard','12'\n4,'tiger','10'");
+ expect(csvResult).toEqual('1,\'leopard\',\'12\'\n4,\'tiger\',\'10\'');
});
});
});
diff --git a/web/regression/javascript/selection/row_selector_spec.js b/web/regression/javascript/selection/row_selector_spec.js
index 10697e6a..be741d42 100644
--- a/web/regression/javascript/selection/row_selector_spec.js
+++ b/web/regression/javascript/selection/row_selector_spec.js
@@ -1,174 +1,172 @@
-define(
- ["jquery",
- "underscore",
- "slickgrid/slick.grid",
- "sources/selection/row_selector",
- "slickgrid/slick.rowselectionmodel",
- "slickgrid",
- ],
- function ($, _, SlickGrid, RowSelector, RowSelectionModel, Slick) {
- describe("RowSelector", function () {
- var container, data, columnDefinitions, grid, rowSelectionModel;
+import $ from 'jquery';
+
+import Slick from 'slickgrid';
+import 'slickgrid.grid';
+import RowSelectionModel from 'slickgrid.rowselectionmodel';
+
+import RowSelector from 'sources/selection/row_selector';
+
+describe('RowSelector', function () {
+ var container, data, columnDefinitions, grid, rowSelectionModel;
+
+ beforeEach(function () {
+ container = $('');
+ container.height(9999);
+
+ columnDefinitions = [{
+ id: '1',
+ name: 'some-column-name',
+ selectable: true,
+ }, {
+ id: '2',
+ name: 'second column',
+ selectable: true,
+ }];
+
+ var rowSelector = new RowSelector();
+ data = [];
+ for (var i = 0; i < 10; i++) {
+ data.push(['some-value-' + i, 'second value ' + i]);
+ }
+ columnDefinitions = rowSelector.getColumnDefinitionsWithCheckboxes(columnDefinitions);
+ grid = new Slick.Grid(container, data, columnDefinitions);
+
+ rowSelectionModel = new RowSelectionModel();
+ grid.setSelectionModel(rowSelectionModel);
+ grid.registerPlugin(rowSelector);
+ grid.invalidate();
+
+ $('body').append(container);
+ });
+
+ afterEach(function () {
+ $('body').find(container).remove();
+ });
+
+ it('renders an additional column on the left', function () {
+ expect(columnDefinitions.length).toBe(3);
+
+ var leftmostColumn = columnDefinitions[0];
+ expect(leftmostColumn.id).toBe('row-header-column');
+ expect(leftmostColumn.name).toBe('');
+ expect(leftmostColumn.selectable).toBe(false);
+ });
+
+ it('renders a checkbox the leftmost column', function () {
+ expect(container.find('.sr').length).toBe(11);
+ expect(container.find('.sr .sc:first-child input[type="checkbox"]').length).toBe(10);
+ });
+
+ it('preserves the other attributes of column definitions', function () {
+ expect(columnDefinitions[1].id).toBe('1');
+ expect(columnDefinitions[1].selectable).toBe(true);
+ });
+
+ describe('selecting rows', function () {
+ describe('when the user clicks a row header checkbox', function () {
+ it('selects the row', function () {
+ container.find('.sr .sc:first-child input[type="checkbox"]')[0].click();
+
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ expectOnlyTheFirstRowToBeSelected(selectedRanges);
+ });
- beforeEach(function () {
- container = $("");
- container.height(9999);
-
- columnDefinitions = [{
- id: '1',
- name: 'some-column-name',
- selectable: true
- }, {
- id: '2',
- name: 'second column',
- selectable: true
- }];
-
- var rowSelector = new RowSelector();
- data = [];
- for (var i = 0; i < 10; i++) {
- data.push(['some-value-' + i, 'second value ' + i]);
- }
- columnDefinitions = rowSelector.getColumnDefinitionsWithCheckboxes(columnDefinitions);
- grid = new SlickGrid(container, data, columnDefinitions);
-
- rowSelectionModel = new RowSelectionModel();
- grid.setSelectionModel(rowSelectionModel);
- grid.registerPlugin(rowSelector);
- grid.invalidate();
-
- $("body").append(container);
+ it('checks the checkbox', function () {
+ container.find('.sr .sc:first-child input[type="checkbox"]')[5].click();
+
+ expect($(container.find('.sr .sc:first-child input[type="checkbox"]')[5])
+ .is(':checked')).toBeTruthy();
+ });
+ });
+
+ describe('when the user clicks a row header', function () {
+ it('selects the row', function () {
+ container.find('.sr .sc:first-child')[0].click();
+
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ expectOnlyTheFirstRowToBeSelected(selectedRanges);
});
- afterEach(function () {
- $("body").find(container).remove();
+ it('checks the checkbox', function () {
+ container.find('.sr .sc:first-child')[7].click();
+
+ expect($(container.find('.sr .sc:first-child input[type="checkbox"]')[7])
+ .is(':checked')).toBeTruthy();
});
+ });
+
+ describe('when the user clicks multiple row headers', function () {
+ it('selects another row', function () {
+ container.find('.sr .sc:first-child')[4].click();
+ container.find('.sr .sc:first-child')[0].click();
- it("renders an additional column on the left", function () {
- expect(columnDefinitions.length).toBe(3);
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+ expect(selectedRanges.length).toEqual(2);
+
+ var row1 = selectedRanges[0];
+ expect(row1.fromRow).toBe(4);
+ expect(row1.toRow).toBe(4);
+
+ var row2 = selectedRanges[1];
+ expect(row2.fromRow).toBe(0);
+ expect(row2.toRow).toBe(0);
+ });
+ });
- var leftmostColumn = columnDefinitions[0];
- expect(leftmostColumn.id).toBe('row-header-column');
- expect(leftmostColumn.name).toBe('');
- expect(leftmostColumn.selectable).toBe(false);
+ describe('when a column was already selected', function () {
+ beforeEach(function () {
+ var selectedRanges = [new Slick.Range(0, 0, 0, 1)];
+ rowSelectionModel.setSelectedRanges(selectedRanges);
});
- it("renders a checkbox the leftmost column", function () {
- expect(container.find('.sr').length).toBe(11);
- expect(container.find('.sr .sc:first-child input[type="checkbox"]').length).toBe(10);
+ it('deselects the column', function () {
+ container.find('.sr .sc:first-child')[0].click();
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+
+ expectOnlyTheFirstRowToBeSelected(selectedRanges);
});
+ });
- it("preserves the other attributes of column definitions", function () {
- expect(columnDefinitions[1].id).toBe('1');
- expect(columnDefinitions[1].selectable).toBe(true);
+ describe('when the row is deselected through setSelectedRanges', function () {
+ beforeEach(function () {
+ container.find('.sr .sc:first-child')[4].click();
});
- describe("selecting rows", function () {
- describe("when the user clicks a row header checkbox", function () {
- it("selects the row", function () {
- container.find('.sr .sc:first-child input[type="checkbox"]')[0].click();
-
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- expectOnlyTheFirstRowToBeSelected(selectedRanges);
- });
-
- it("checks the checkbox", function () {
- container.find('.sr .sc:first-child input[type="checkbox"]')[5].click();
-
- expect($(container.find('.sr .sc:first-child input[type="checkbox"]')[5])
- .is(':checked')).toBeTruthy();
- });
- });
-
- describe("when the user clicks a row header", function () {
- it("selects the row", function () {
- container.find('.sr .sc:first-child')[0].click();
-
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- expectOnlyTheFirstRowToBeSelected(selectedRanges);
- });
-
- it("checks the checkbox", function () {
- container.find('.sr .sc:first-child')[7].click();
-
- expect($(container.find('.sr .sc:first-child input[type="checkbox"]')[7])
- .is(':checked')).toBeTruthy();
- });
- });
-
- describe("when the user clicks multiple row headers", function () {
- it("selects another row", function () {
- container.find('.sr .sc:first-child')[4].click();
- container.find('.sr .sc:first-child')[0].click();
-
- var selectedRanges = rowSelectionModel.getSelectedRanges();
- expect(selectedRanges.length).toEqual(2);
-
- var row1 = selectedRanges[0];
- expect(row1.fromRow).toBe(4);
- expect(row1.toRow).toBe(4);
-
- var row2 = selectedRanges[1];
- expect(row2.fromRow).toBe(0);
- expect(row2.toRow).toBe(0);
- });
- });
-
- describe("when a column was already selected", function () {
- beforeEach(function () {
- var selectedRanges = [new Slick.Range(0, 0, 0, 1)];
- rowSelectionModel.setSelectedRanges(selectedRanges);
- });
-
- it("deselects the column", function () {
- container.find('.sr .sc:first-child')[0].click();
- var selectedRanges = rowSelectionModel.getSelectedRanges();
-
- expectOnlyTheFirstRowToBeSelected(selectedRanges);
- })
- });
-
- describe("when the row is deselected through setSelectedRanges", function () {
- beforeEach(function () {
- container.find('.sr .sc:first-child')[4].click();
- });
-
- it("should uncheck the checkbox", function () {
- rowSelectionModel.setSelectedRanges([]);
-
- expect($(container.find('.sr .sc:first-child input[type="checkbox"]')[4])
- .is(':checked')).toBeFalsy();
- });
- });
-
- describe("click a second time", function () {
- beforeEach(function () {
- container.find('.sr .sc:first-child')[1].click();
- });
-
- it("unchecks checkbox", function () {
- container.find('.sr .sc:first-child')[1].click();
- expect($(container.find('.sr .sc:first-child input[type="checkbox"]')[1])
- .is(':checked')).toBeFalsy();
- });
-
- it("unselects the row", function () {
- container.find('.sr .sc:first-child')[1].click();
- var selectedRanges = rowSelectionModel.getSelectedRanges();
-
- expect(selectedRanges.length).toEqual(0);
- })
- });
+ it('should uncheck the checkbox', function () {
+ rowSelectionModel.setSelectedRanges([]);
+
+ expect($(container.find('.sr .sc:first-child input[type="checkbox"]')[4])
+ .is(':checked')).toBeFalsy();
});
});
- function expectOnlyTheFirstRowToBeSelected(selectedRanges) {
- var row = selectedRanges[0];
+ describe('click a second time', function () {
+ beforeEach(function () {
+ container.find('.sr .sc:first-child')[1].click();
+ });
+
+ it('unchecks checkbox', function () {
+ container.find('.sr .sc:first-child')[1].click();
+ expect($(container.find('.sr .sc:first-child input[type="checkbox"]')[1])
+ .is(':checked')).toBeFalsy();
+ });
- expect(selectedRanges.length).toEqual(1);
- expect(row.fromCell).toBe(1);
- expect(row.toCell).toBe(2);
- expect(row.fromRow).toBe(0);
- expect(row.toRow).toBe(0);
- }
- });
\ No newline at end of file
+ it('unselects the row', function () {
+ container.find('.sr .sc:first-child')[1].click();
+ var selectedRanges = rowSelectionModel.getSelectedRanges();
+
+ expect(selectedRanges.length).toEqual(0);
+ });
+ });
+ });
+});
+
+function expectOnlyTheFirstRowToBeSelected(selectedRanges) {
+ var row = selectedRanges[0];
+
+ expect(selectedRanges.length).toEqual(1);
+ expect(row.fromCell).toBe(1);
+ expect(row.toCell).toBe(2);
+ expect(row.fromRow).toBe(0);
+ expect(row.toRow).toBe(0);
+}
\ No newline at end of file
diff --git a/web/regression/javascript/selection/set_staged_rows_spec.js b/web/regression/javascript/selection/set_staged_rows_spec.js
index 11e293fd..ebecc4b0 100644
--- a/web/regression/javascript/selection/set_staged_rows_spec.js
+++ b/web/regression/javascript/selection/set_staged_rows_spec.js
@@ -8,9 +8,9 @@
//////////////////////////////////////////////////////////////
define([
- "jquery",
- "underscore",
- "sources/selection/set_staged_rows",
+ 'jquery',
+ 'underscore',
+ 'sources/selection/set_staged_rows',
], function ($, _, SetStagedRows) {
describe('when no full rows are selected', function () {
var sqlEditorObj, deleteButton, copyButton;
@@ -20,7 +20,7 @@ define([
{0: 'one', 1: 'two', __temp_PK: '123'},
{0: 'three', 1: 'four', __temp_PK: '456'},
{0: 'five', 1: 'six', __temp_PK: '789'},
- {0: 'seven', 1: 'eight', __temp_PK: '432'}
+ {0: 'seven', 1: 'eight', __temp_PK: '432'},
]);
deleteButton = $('');
copyButton = $('');
@@ -29,10 +29,10 @@ define([
editor: {
handler: {
data_store: {
- staged_rows: {1: [1, 2]}
- }
- }
- }
+ staged_rows: {1: [1, 2]},
+ },
+ },
+ },
};
$('body').append(deleteButton);
$('body').append(copyButton);
@@ -93,7 +93,7 @@ define([
{0: 'one', 1: 'two', __temp_PK: '123'},
{0: 'three', 1: 'four', __temp_PK: '456'},
{0: 'five', 1: 'six', __temp_PK: '789'},
- {0: 'seven', 1: 'eight', __temp_PK: '432'}
+ {0: 'seven', 1: 'eight', __temp_PK: '432'},
]);
var selectionSpy = jasmine.createSpyObj('selectionSpy', ['getSelectedRows', 'setSelectedRows']);
@@ -107,23 +107,23 @@ define([
editor: {
handler: {
data_store: {
- staged_rows: {'456': {}}
+ staged_rows: {'456': {}},
},
- can_edit: false
- }
+ can_edit: false,
+ },
},
keys: null,
selection: selectionSpy,
columns: [
{
name: 'a pk column',
- pos: 0
+ pos: 0,
},
{
name: 'some column',
- pos: 1
- }
- ]
+ pos: 1,
+ },
+ ],
};
$('body').append(deleteButton);
@@ -190,7 +190,7 @@ define([
{0: 'one', 1: 'two', __temp_PK: '123'},
{1: 'four', __temp_PK: '456'},
{1: 'six', __temp_PK: '789'},
- {0: 'seven', 1: 'eight', __temp_PK: '432'}
+ {0: 'seven', 1: 'eight', __temp_PK: '432'},
]);
});
@@ -224,7 +224,7 @@ define([
it('should not clear the staged rows', function () {
expect(sqlEditorObj.editor.handler.data_store.staged_rows).toEqual({
'456': {0: 'three'},
- '789': {0: 'five'}
+ '789': {0: 'five'},
});
});
diff --git a/web/regression/javascript/size_prettify_spec.js b/web/regression/javascript/size_prettify_spec.js
index 7d370fcb..f60c79c0 100644
--- a/web/regression/javascript/size_prettify_spec.js
+++ b/web/regression/javascript/size_prettify_spec.js
@@ -7,59 +7,59 @@
//
//////////////////////////////////////////////////////////////////////////
-define(["sources/size_prettify"], function (sizePrettify) {
- describe("sizePrettify", function () {
- describe("when size is 0", function () {
- it("returns 0 bytes", function () {
- expect(sizePrettify(0)).toEqual("0 bytes");
+define(['sources/size_prettify'], function (sizePrettify) {
+ describe('sizePrettify', function () {
+ describe('when size is 0', function () {
+ it('returns 0 bytes', function () {
+ expect(sizePrettify(0)).toEqual('0 bytes');
});
});
- describe("when size >= 10kB and size < 10 MB", function () {
- it("returns size in kB", function () {
- expect(sizePrettify(10240)).toEqual("10 kB");
+ describe('when size >= 10kB and size < 10 MB', function () {
+ it('returns size in kB', function () {
+ expect(sizePrettify(10240)).toEqual('10 kB');
});
- it("returns size in kB", function () {
- expect(sizePrettify(99999)).toEqual("98 kB");
+ it('returns size in kB', function () {
+ expect(sizePrettify(99999)).toEqual('98 kB');
});
});
- describe("when size >= 10MB and size < 10 GB", function () {
- it("returns size in MB", function () {
- expect(sizePrettify(10485760)).toEqual("10 MB");
+ describe('when size >= 10MB and size < 10 GB', function () {
+ it('returns size in MB', function () {
+ expect(sizePrettify(10485760)).toEqual('10 MB');
});
- it("returns size in MB", function () {
- expect(sizePrettify(44040192)).toEqual("42 MB");
+ it('returns size in MB', function () {
+ expect(sizePrettify(44040192)).toEqual('42 MB');
});
});
- describe("when size >= 10GB and size < 10 TB", function () {
- it("returns size in GB", function () {
- expect(sizePrettify(10737418240)).toEqual("10 GB");
+ describe('when size >= 10GB and size < 10 TB', function () {
+ it('returns size in GB', function () {
+ expect(sizePrettify(10737418240)).toEqual('10 GB');
});
- it("returns size in GB", function () {
- expect(sizePrettify(10736344498176)).toEqual("9999 GB");
+ it('returns size in GB', function () {
+ expect(sizePrettify(10736344498176)).toEqual('9999 GB');
});
});
- describe("when size >= 10TB and size < 10 PB", function () {
- it("returns size in TB", function () {
- expect(sizePrettify(10995116277760)).toEqual("10 TB");
+ describe('when size >= 10TB and size < 10 PB', function () {
+ it('returns size in TB', function () {
+ expect(sizePrettify(10995116277760)).toEqual('10 TB');
});
- it("returns size in TB", function () {
- expect(sizePrettify(29995116277760)).toEqual("27 TB");
+ it('returns size in TB', function () {
+ expect(sizePrettify(29995116277760)).toEqual('27 TB');
});
});
- describe("when size >= 10 PB", function () {
- it("returns size in PB", function () {
- expect(sizePrettify(11258999068426200)).toEqual("10 PB");
+ describe('when size >= 10 PB', function () {
+ it('returns size in PB', function () {
+ expect(sizePrettify(11258999068426200)).toEqual('10 PB');
});
});