mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
54 lines
2.4 KiB
TypeScript
54 lines
2.4 KiB
TypeScript
|
import {assert, driver} from 'mocha-webdriver';
|
||
|
import * as gu from 'test/nbrowser/gristUtils';
|
||
|
import {setupTestSuite} from 'test/nbrowser/testUtils';
|
||
|
|
||
|
describe('RefNumericChange', function() {
|
||
|
this.timeout(20000);
|
||
|
const cleanup = setupTestSuite();
|
||
|
|
||
|
afterEach(() => gu.checkForErrors());
|
||
|
|
||
|
it('should allow converting a ref column to numeric and undoing it', async function() {
|
||
|
// We had a bug with Ref -> Numeric conversion when starting with a Ref column that showed a
|
||
|
// numeric display col.
|
||
|
const session = await gu.session().teamSite.user('user1').login();
|
||
|
const docId = (await session.tempNewDoc(cleanup, 'RefNumericChange1', {load: false}));
|
||
|
const api = session.createHomeApi();
|
||
|
await api.applyUserActions(docId, [
|
||
|
['AddTable', 'TestTable', [{id: 'Num', type: 'Numeric'}, {id: 'Ref', type: 'Ref:TestTable'}]],
|
||
|
['BulkAddRecord', 'TestTable', [null, null, null, null], {Num: ['5', '10', '15'], Ref: [3, 2, 0, '17.0']}],
|
||
|
]);
|
||
|
|
||
|
await session.loadDoc(`/doc/${docId}/p/2`);
|
||
|
|
||
|
// Change TestTable.Ref column (of type Ref:TestTable) to use TestTable.Num as "SHOW COLUMN".
|
||
|
await gu.getCell({section: 'TestTable', rowNum: 1, col: 'Ref'}).click();
|
||
|
await gu.toggleSidePanel('right', 'open');
|
||
|
await driver.find('.test-right-tab-field').click();
|
||
|
await driver.find('.test-fbuilder-ref-col-select').click();
|
||
|
await driver.findContent('.test-select-row', /Num/).click();
|
||
|
await gu.waitForServer();
|
||
|
|
||
|
assert.equal(await driver.find('.test-fbuilder-type-select').getText(), "Reference");
|
||
|
assert.deepEqual(await gu.getVisibleGridCells({section: 'TestTable', rowNums: [1, 2, 3, 4], col: 'Ref'}),
|
||
|
['15', '10', '', '17.0']);
|
||
|
|
||
|
// Change type of column Ref to Numeric.
|
||
|
await gu.getCell({section: 'TestTable', rowNum: 1, col: 'Ref'}).click();
|
||
|
await gu.setType('Numeric');
|
||
|
await driver.findContent('.type_transform_prompt button', /Apply/).click();
|
||
|
await gu.waitForServer();
|
||
|
|
||
|
await gu.checkForErrors();
|
||
|
assert.equal(await driver.find('.test-fbuilder-type-select').getText(), "Numeric");
|
||
|
assert.deepEqual(await gu.getVisibleGridCells({section: 'TestTable', rowNums: [1, 2, 3, 4], col: 'Ref'}),
|
||
|
['15', '10', '0', '17']);
|
||
|
|
||
|
// Revert.
|
||
|
await gu.undo();
|
||
|
assert.equal(await driver.find('.test-fbuilder-type-select').getText(), "Reference");
|
||
|
assert.deepEqual(await gu.getVisibleGridCells({section: 'TestTable', rowNums: [1, 2, 3, 4], col: 'Ref'}),
|
||
|
['15', '10', '', '17.0']);
|
||
|
});
|
||
|
});
|