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.
113 lines
4.1 KiB
113 lines
4.1 KiB
import { assert, driver, Key } from 'mocha-webdriver';
|
|
import * as gu from 'test/nbrowser/gristUtils';
|
|
import { setupTestSuite } from 'test/nbrowser/testUtils';
|
|
|
|
const defaultHeaderBackgroundColor = '#f7f7f7';
|
|
|
|
describe('HeaderColor', function () {
|
|
this.timeout(20000);
|
|
const cleanup = setupTestSuite();
|
|
|
|
before(async () => {
|
|
// Create a new document
|
|
const mainSession = await gu.session().login();
|
|
await mainSession.tempNewDoc(cleanup, 'HeaderColor');
|
|
// add records
|
|
await gu.enterCell('a');
|
|
await gu.enterCell('b');
|
|
await gu.enterCell('c');
|
|
await gu.toggleSidePanel('right', 'open');
|
|
await driver.find('.test-right-tab-field').click();
|
|
});
|
|
|
|
it('should save by clicking away', async function () {
|
|
await gu.getCell('A', 1).click();
|
|
// open color picker
|
|
await gu.openHeaderColorPicker();
|
|
await gu.setFillColor('red');
|
|
await gu.setTextColor('blue');
|
|
// Save by clicking B column
|
|
await gu.getCell('B', 1).click();
|
|
await gu.waitForServer();
|
|
// Make sure the color is saved.
|
|
await gu.assertHeaderFillColor('A', 'red');
|
|
await gu.assertHeaderTextColor('A', 'blue');
|
|
await gu.assertHeaderFillColor('B', defaultHeaderBackgroundColor);
|
|
await gu.assertHeaderTextColor('B', 'black');
|
|
// Make sure it sticks after reload.
|
|
await driver.navigate().refresh();
|
|
await gu.waitForDocToLoad();
|
|
await gu.assertHeaderFillColor('A', 'red');
|
|
await gu.assertHeaderTextColor('A', 'blue');
|
|
await gu.assertHeaderFillColor('B', defaultHeaderBackgroundColor);
|
|
await gu.assertHeaderTextColor('B', 'black');
|
|
});
|
|
|
|
it('should undo and redo colors when clicked away', async function () {
|
|
await gu.getCell('A', 1).click();
|
|
// open color picker
|
|
await gu.openHeaderColorPicker();
|
|
await gu.setFillColor('red');
|
|
await gu.setTextColor('blue');
|
|
// Save by clicking B column
|
|
await gu.getCell('B', 1).click();
|
|
await gu.waitForServer();
|
|
// Make sure the color is saved.
|
|
await gu.assertHeaderFillColor('A', 'red');
|
|
await gu.assertHeaderTextColor('A', 'blue');
|
|
await gu.assertHeaderFillColor('B', defaultHeaderBackgroundColor);
|
|
await gu.assertHeaderTextColor('B', 'black');
|
|
// Make sure then undoing works.
|
|
await gu.undo();
|
|
await gu.assertHeaderFillColor('A', defaultHeaderBackgroundColor);
|
|
await gu.assertHeaderTextColor('A', 'black');
|
|
await gu.assertHeaderFillColor('B', defaultHeaderBackgroundColor);
|
|
await gu.assertHeaderTextColor('B', 'black');
|
|
await gu.redo();
|
|
await gu.assertHeaderFillColor('A', 'red');
|
|
await gu.assertHeaderTextColor('A', 'blue');
|
|
await gu.assertHeaderFillColor('B', defaultHeaderBackgroundColor);
|
|
await gu.assertHeaderTextColor('B', 'black');
|
|
});
|
|
|
|
|
|
it('should work correctly on Grid view', async function () {
|
|
const columnHeader = gu.getColumnHeader('C');
|
|
|
|
await columnHeader.click();
|
|
// open color picker
|
|
await gu.openHeaderColorPicker();
|
|
|
|
// set header colors
|
|
await gu.setColor(driver.find('.test-text-input'), 'rgb(255, 0, 0)');
|
|
await gu.setColor(driver.find('.test-fill-input'), 'rgb(0, 0, 255)');
|
|
|
|
// press enter to close color picker
|
|
await driver.sendKeys(Key.ENTER);
|
|
|
|
// check header colors
|
|
assert.equal(await columnHeader.getCssValue('color'), 'rgba(255, 0, 0, 1)');
|
|
assert.equal(await columnHeader.getCssValue('background-color'), 'rgba(0, 0, 255, 1)');
|
|
});
|
|
|
|
it('should not exist in Detail view', async function () {
|
|
// Color the A column in Grid View
|
|
const columnHeader = gu.getColumnHeader('A');
|
|
await columnHeader.click();
|
|
await gu.openHeaderColorPicker();
|
|
await gu.setColor(driver.find('.test-text-input'), 'rgb(255, 0, 0)');
|
|
await driver.sendKeys(Key.ENTER);
|
|
|
|
// Add a card list widget of Table1
|
|
await gu.addNewSection(/Card List/, /Table1/);
|
|
|
|
// check header colors
|
|
const detailHeader = await driver.findContent('.g_record_detail_label', gu.exactMatch('A'));
|
|
assert.equal(await detailHeader.getCssValue('color'), 'rgba(146, 146, 153, 1)');
|
|
|
|
// There is no header color picker
|
|
assert.isFalse(await driver.find('.test-header-color-select .test-color-select').isPresent());
|
|
|
|
});
|
|
});
|