mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
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']);
|
||
|
});
|
||
|
});
|