mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
e93dd4bc6f
Summary: - Preserving cursor position when linked state is removed. - Moving linking tests to grist core. - Disabling yarn offline mirror for grist-core. This helps testing grist-core when it is imported as a submodule. - Moving one test for linked section from ReferenceColumns.ts to RightPanelSelectBy.ts. Test Plan: Updated Reviewers: paulfitz Reviewed By: paulfitz Subscribers: paulfitz Differential Revision: https://phab.getgrist.com/D3795
66 lines
3.1 KiB
TypeScript
66 lines
3.1 KiB
TypeScript
import { getColValues } from 'app/common/DocActions';
|
|
import { UserAPI } from 'app/common/UserAPI';
|
|
import { assert, driver } from 'mocha-webdriver';
|
|
import * as gu from 'test/nbrowser/gristUtils';
|
|
import { server, setupTestSuite } from 'test/nbrowser/testUtils';
|
|
|
|
/**
|
|
* This is test for a bug that was on the Right Panel. [Select by] dropdown wasn't updated
|
|
* properly when summary tables (or linking in general) were updated.
|
|
*/
|
|
|
|
describe("SelectByRightPanel", function() {
|
|
this.timeout(20000);
|
|
setupTestSuite();
|
|
let docId: string;
|
|
let api: UserAPI;
|
|
|
|
before(async () => {
|
|
await server.simulateLogin("Chimpy", "chimpy@getgrist.com", "nasa");
|
|
docId = await gu.createNewDoc('chimpy', 'nasa', 'Horizon', 'Test22.grist');
|
|
api = gu.createHomeApi('Chimpy', 'nasa');
|
|
await driver.get(`${server.getHost()}/o/nasa/doc/${docId}`);
|
|
await gu.waitForDocToLoad();
|
|
await api.applyUserActions(docId, [
|
|
['UpdateRecord', '_grist_Tables_column', 2, { label: 'Company' }],
|
|
['UpdateRecord', '_grist_Tables_column', 3, { label: 'Category' }],
|
|
['UpdateRecord', '_grist_Tables_column', 4, { label: 'Month' }],
|
|
['AddVisibleColumn', 'Table1', 'Date', {}],
|
|
['AddVisibleColumn', 'Table1', 'Value', {}],
|
|
]);
|
|
// Add some dummy data.
|
|
await api.applyUserActions(docId, [
|
|
['BulkAddRecord', 'Table1', new Array(7).fill(null), getColValues([
|
|
{ Company: 'Mic', Category: 'Sales', Month: 1, Date: 1, Value: 100 },
|
|
{ Company: 'Mic', Category: 'Sales', Month: 1, Date: 2, Value: 100 },
|
|
{ Company: 'Mic', Category: 'Cloud', Month: 1, Date: 3, Value: 300 },
|
|
{ Company: 'Gog', Category: 'Sales', Month: 4, Date: 4, Value: 100 },
|
|
{ Company: 'Gog', Category: 'Adv', Month: 4, Date: 4, Value: 100 },
|
|
{ Company: 'Gog', Category: 'Adv', Month: 3, Date: 5, Value: 100 },
|
|
{ Company: 'Tes', Category: 'Sales', Month: 2, Date: 6, Value: 100 },
|
|
])],
|
|
]);
|
|
});
|
|
|
|
it("selects by right panel for", async () => {
|
|
// Add first summary table by Company
|
|
await gu.addNewSection('Table', 'Table1', { summarize: ['Company'] });
|
|
// Add second one by Category, we will update selection later using data selection on right panel
|
|
await gu.addNewSection('Table', 'Table1', { summarize: ['Category'] });
|
|
// Add Company to this table, select by should be filled with the new option.
|
|
await gu.toggleSidePanel('right', 'open');
|
|
await driver.find('.test-right-tab-pagewidget').click();
|
|
await driver.find('.test-config-data').click();
|
|
await driver.find('.test-pwc-editDataSelection').click();
|
|
await driver.findContent('.test-wselect-column', /Company/).doClick();
|
|
await driver.find('.test-wselect-addBtn').click();
|
|
await gu.waitForServer();
|
|
// Test that we have new option.
|
|
await driver.find('.test-right-select-by').click();
|
|
await driver.findContentWait('.test-select-menu li', "TABLE1 [by Company]", 200).click();
|
|
await gu.waitForServer();
|
|
assert.deepEqual(await gu.getVisibleGridCells('Company', [1, 2]), ['Mic', 'Mic']);
|
|
assert.deepEqual(await gu.getVisibleGridCells('Category', [1, 2]), ['Sales', 'Cloud']);
|
|
});
|
|
});
|