You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
2.4 KiB
64 lines
2.4 KiB
import { assert } from 'mocha-webdriver';
|
|
import { $, gu, test } from 'test/nbrowser/gristUtil-nbrowser';
|
|
|
|
describe('SortEditSave.ntest', function() {
|
|
const cleanup = test.setupTestSuite(this);
|
|
|
|
before(async function() {
|
|
await gu.supportOldTimeyTestCode();
|
|
await gu.useFixtureDoc(cleanup, "Hello.grist", true);
|
|
});
|
|
|
|
afterEach(function() {
|
|
return gu.checkForErrors();
|
|
});
|
|
|
|
it('should not jump to next row when an updated field jumps in a sorted section', async function() {
|
|
// Enter numbers and sort by them
|
|
await gu.enterGridValues(0, 1, [['1', '2', '3', '4']]);
|
|
await gu.clickCellRC(0, 1);
|
|
await gu.setType('Numeric');
|
|
await $('.test-type-transform-apply').click();
|
|
await gu.openColumnMenu('B');
|
|
await $('.grist-floating-menu .test-sort-asc').click();
|
|
|
|
// Edit one of the numbers so that it doesn't get re-sorted. Assert that the cursor
|
|
// moves down one cell
|
|
await gu.clickCellRC(1, 1);
|
|
await gu.sendKeys("2.5", $.ENTER);
|
|
await gu.waitForServer();
|
|
assert.equal(await $('.field_clip.has_cursor').text(), "3");
|
|
|
|
// Edit one of the numbers so that it gets re-sorted. Assert that the cursor stays
|
|
// on the cell
|
|
await gu.clickCellRC(1, 1);
|
|
await gu.sendKeys("3.5", $.ENTER);
|
|
await gu.waitForServer();
|
|
assert.equal(await $('.field_clip.has_cursor').text(), "3.5");
|
|
});
|
|
|
|
it('should not jump to next row when a formula update causes the field to jump', async function() {
|
|
// Enter a formula in the next column, and sort by the column
|
|
await gu.clickCellRC(0, 2);
|
|
await gu.sendKeys("=");
|
|
await $('.test-editor-tooltip-convert').click(); // Convert to a formula
|
|
await gu.sendKeys("$B", $.ENTER);
|
|
await gu.openColumnMenu('C');
|
|
await $('.grist-floating-menu .test-sort-asc').click();
|
|
|
|
// Edit the formula so that the row stays in the same place. Assert that the cursor
|
|
// does NOT move down (since editing a column-wide formula, not doing data entry).
|
|
await gu.clickCellRC(0, 2);
|
|
await gu.sendKeys($.ENTER, [$.MOD, 'a'], "$B+5", $.ENTER);
|
|
await gu.waitForServer();
|
|
assert.equal(await $('.field_clip.has_cursor').text(), "6");
|
|
|
|
// Edit the formula so that the row moves. Assert that the cursor says on the cell
|
|
// in this case too.
|
|
await gu.clickCellRC(0, 2);
|
|
await gu.sendKeys($.ENTER, [$.MOD, 'a'], "10-$B", $.ENTER);
|
|
await gu.waitForServer();
|
|
assert.equal(await $('.field_clip.has_cursor').text(), "9");
|
|
});
|
|
});
|