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.
gristlabs_grist-core/test/nbrowser/SortEditSave.ntest.js

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");
});
});