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.
62 lines
2.1 KiB
62 lines
2.1 KiB
/* global window */
|
|
|
|
import { assert, driver } from 'mocha-webdriver';
|
|
import { $, gu, test } from 'test/nbrowser/gristUtil-nbrowser';
|
|
|
|
describe('CodeEditor.ntest', function() {
|
|
const cleanup = test.setupTestSuite(this);
|
|
|
|
before(async function() {
|
|
await gu.supportOldTimeyTestCode();
|
|
await gu.useFixtureDoc(cleanup, '../uploads/CodeEditor.test.csv', true);
|
|
});
|
|
|
|
afterEach(function() {
|
|
return gu.checkForErrors();
|
|
});
|
|
|
|
it('Should activate on click of `Code View` button', async function() {
|
|
await gu.openSidePane('code');
|
|
assert.match(await $('.g-code-viewer').wait().getText(),
|
|
/class CodeEditor_test:[^]*A = grist.Text\(\)[^]*B = grist.Numeric\(\)/);
|
|
});
|
|
|
|
it('Should update to reflect changes in schema', async function() {
|
|
await gu.actions.selectTabView('CodeEditor.test');
|
|
// open the side menu
|
|
await gu.openSidePane('field');
|
|
|
|
await gu.getCellRC(0, 0).click();
|
|
await $(".test-field-label").wait(assert.isDisplayed);
|
|
await $(".test-field-label").sendNewText('foo');
|
|
await gu.waitForServer();
|
|
|
|
await gu.getCellRC(0, 1).click();
|
|
await $(".test-field-label").sendNewText('bar');
|
|
await gu.waitForServer(); // Must wait for colId change to finish
|
|
|
|
await gu.setType('Reference');
|
|
await gu.applyTypeConversion();
|
|
await gu.setVisibleCol('foo');
|
|
await gu.waitForServer();
|
|
|
|
// Check that type conversion worked correctly.
|
|
assert.equal(await gu.getCellRC(1, 1).text(), 'Bob');
|
|
|
|
await gu.openSidePane('code');
|
|
assert.match(await $('.g-code-viewer').wait().getText(),
|
|
/foo = grist.Text\(\)[^]*bar = grist.Reference\('CodeEditor_test'\)/);
|
|
});
|
|
|
|
it('should filter out helper columns', async function() {
|
|
assert.notInclude(await $('.g-code-viewer').wait().getText(), 'gristHelper');
|
|
});
|
|
|
|
it('should allow text selection', async function() {
|
|
const textElem = $('.hljs-title:contains(CodeEditor)');
|
|
await textElem.click();
|
|
await driver.withActions(a => a.doubleClick(textElem.elem()));
|
|
assert.equal(await driver.executeScript(() => window.getSelection().toString()), 'CodeEditor_test');
|
|
});
|
|
});
|