gristlabs_grist-core/test/nbrowser/ViewConfigTab.ntest.js

72 lines
2.7 KiB
JavaScript
Raw Permalink Normal View History

import { assert } from 'mocha-webdriver';
import { $, gu, test } from 'test/nbrowser/gristUtil-nbrowser';
describe('ViewConfigTab.ntest', function() {
test.setupTestSuite(this);
before(async function() {
await gu.supportOldTimeyTestCode();
await gu.actions.createNewDoc();
});
afterEach(function() {
return gu.checkForErrors();
});
it('should set up a new Untitled document with one table', async function() {
// Add another table to the document: click dropdown, select "New Table".
assert.deepEqual(await $(`.test-docpage-label`).array().text(), ['Table1']);
await gu.actions.addNewTable();
assert.deepEqual(await $(`.test-docpage-label`).array().text(), ['Table1', 'Table2']);
});
it("should allow opening and closing view config pane", async function() {
var viewNameInput = $('.test-right-widget-title');
// Open the tab, and check it becomes visible.
await gu.openSidePane('view');
await assert.isDisplayed(viewNameInput.wait(assert.isDisplayed), true);
// Close the tab again.
await gu.toggleSidePanel('right', 'toggle');
await assert.isPresent(viewNameInput, false);
});
it('should keep view config pane open across views, with correct view name', async function() {
await gu.openSidePane('view');
var viewNameInput = $('.test-right-widget-title');
await assert.isDisplayed(viewNameInput.wait(assert.isDisplayed), true);
assert.equal(await viewNameInput.val(), 'TABLE2');
// Switch to another view, and make sure the view config side pane is still visible.
await gu.actions.selectTabView('Table1');
await assert.isDisplayed(viewNameInput);
assert.equal(await viewNameInput.val(), 'TABLE1');
// Switch to a third view.
await gu.actions.selectTabView('Table2');
await assert.isDisplayed(viewNameInput);
assert.equal(await viewNameInput.val(), 'TABLE2');
});
it('should allow renaming the view from view config pane', async function() {
await gu.actions.selectTabView('Table2');
// Select the view name text box, select the text and replace with "Hello".
var viewNameInput = $('.test-right-widget-title');
await gu.renameTable('Table2', 'Hello'); // I think renaming happens differently now?
// Make sure there is now a view in Table named "Hello"
let tabs = await $(`.test-docpage-label`).array().text();
assert.deepEqual(tabs, [ 'Table1', 'Hello' ]);
// Switch to another view, and back to Hello, and see that the view name textbox is correct.
await gu.actions.selectTabView('Table1');
assert.equal(await viewNameInput.val(), 'TABLE1');
await gu.actions.selectTabView('Hello');
assert.equal(await viewNameInput.val(), 'HELLO');
});
});