Skip to content

Commit 614b31c

Browse files
author
ada mandala
committed
update tests
assure column settings is open before editing or renaming columns
1 parent fc0606a commit 614b31c

File tree

5 files changed

+32
-10
lines changed

5 files changed

+32
-10
lines changed

rust/perspective-viewer/test/js/column_settings.spec.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ test.describe("Plugin Styles", () => {
9595
await exprCol.editBtn.waitFor();
9696
await rowId.editBtn.waitFor({ state: "detached", timeout: 1000 });
9797

98+
await view.assureColumnSettingsClosed();
9899
await exprCol.editBtn.click();
99100
await checkTab(view.columnSettingsSidebar, false, true);
100101
});
@@ -110,8 +111,7 @@ test.describe("Plugin Styles", () => {
110111
let col = activeColumns.getColumnByName("expr");
111112
await inactiveColumns.container.waitFor({ state: "hidden" });
112113
await activeColumns.scrollToBottom();
113-
await col.editBtn.click();
114-
await sidebar.container.waitFor({ state: "visible" });
114+
await view.assureColumnSettingsOpen(col);
115115
await checkTab(sidebar, true, true, true);
116116
let tabs = await sidebar.tabTitle.all();
117117
await tabs[1].click();

rust/perspective-viewer/test/js/column_settings/datagrid.spec.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,13 @@ let runTests = (title: string, beforeEachAndLocalTests: () => void) => {
139139
let table = view.dataGrid.regularTable;
140140

141141
let col = await view.getOrCreateColumnByType("calendar");
142-
await col.editBtn.click();
143142
let name = await col.name.innerText();
144143
expect(name).toBeTruthy();
145144
let td = await table.getFirstCellByColumnName(name);
146145
await td.waitFor();
147146

148147
// text style
148+
view.assureColumnSettingsOpen(col);
149149
await view.columnSettingsSidebar.openTab("style");
150150
let contents = view.columnSettingsSidebar.styleTab.contents;
151151
let checkbox = contents
@@ -173,13 +173,13 @@ let runTests = (title: string, beforeEachAndLocalTests: () => void) => {
173173
let table = view.dataGrid.regularTable;
174174

175175
let col = await view.getOrCreateColumnByType("string");
176-
await col.editBtn.click();
177176
let name = await col.name.innerText();
178177
expect(name).toBeTruthy();
179178
let td = await table.getFirstCellByColumnName(name);
180179
await td.waitFor();
181180

182181
// bg color
182+
await view.assureColumnSettingsOpen(col);
183183
await view.columnSettingsSidebar.openTab("style");
184184
let contents = view.columnSettingsSidebar.styleTab.contents;
185185
let checkbox = contents.locator("input[type=checkbox]").last();
@@ -208,7 +208,10 @@ runTests("Datagrid Column Styles", () => {
208208
});
209209
});
210210

211-
test("Edit highlights go away when view re-draws", async ({ page }) => {
211+
// Keeping the column sidebar open makes this unncessary.
212+
test.skip("Edit highlights go away when view re-draws", async ({
213+
page,
214+
}) => {
212215
let viewer = new PspViewer(page);
213216
await viewer.openSettingsPanel();
214217
let btn = await viewer.dataGrid.regularTable.getEditBtnByName("Row ID");

tools/perspective-test/src/js/models/column_settings.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
1111
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
1212

13-
import { Locator } from "@playwright/test";
13+
import { Locator, expect } from "@playwright/test";
1414
import { PageView } from "./page";
1515

1616
export class ColumnSettingsSidebar {
@@ -37,7 +37,7 @@ export class ColumnSettingsSidebar {
3737

3838
async openTab(name: string) {
3939
let locator = this.tabTitle.filter({ hasText: name });
40-
await locator.click();
40+
await locator.click({ timeout: 1000 });
4141
await this.container
4242
.locator(".tab.selected", { hasText: name })
4343
.waitFor({ timeout: 1000 });

tools/perspective-test/src/js/models/page.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import { Locator, Page, expect } from "@playwright/test";
1414
import { ColumnSettingsSidebar } from "./column_settings";
15-
import { ColumnType, SettingsPanel } from "./settings_panel";
15+
import { ColumnSelector, ColumnType, SettingsPanel } from "./settings_panel";
1616
import { DataGridPlugin } from "./plugins";
1717

1818
/**
@@ -96,4 +96,22 @@ export class PageView {
9696
await viewer!.restore(settings);
9797
}, settings);
9898
}
99+
100+
async assureColumnSettingsOpen(column: ColumnSelector) {
101+
let isEditing = await column.editBtn.evaluate((btn) =>
102+
btn.className.includes("is-editing")
103+
);
104+
if (!isEditing) {
105+
this.container.evaluate((_) =>
106+
console.log("COLUMN SETTINGS CLOSED")
107+
);
108+
await column.editBtn.click({ force: true });
109+
}
110+
expect(this.container).toBeVisible({ timeout: 1000 });
111+
}
112+
async assureColumnSettingsClosed() {
113+
if (await this.columnSettingsSidebar.container.isVisible()) {
114+
await this.columnSettingsSidebar.closeBtn.click();
115+
}
116+
}
99117
}

tools/perspective-test/src/js/models/settings_panel.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export class SettingsPanel {
4242
this.orderbyInput = viewer.locator("#sort input");
4343
this.whereInput = viewer.locator("#filter input");
4444
}
45+
4546
/**
4647
* Creates and saves a new expression column.
4748
* @param expr
@@ -92,7 +93,7 @@ export class SettingsPanel {
9293
* @param expr
9394
*/
9495
async renameExpression(column: ColumnSelector, name: string) {
95-
await column.editBtn.click();
96+
this.pageView.assureColumnSettingsOpen(column);
9697
let sidebar = this.pageView.columnSettingsSidebar;
9798
await sidebar.nameInput.waitFor({
9899
state: "visible",
@@ -106,7 +107,7 @@ export class SettingsPanel {
106107
}
107108

108109
async editExpression(column: ColumnSelector, newExpression: string) {
109-
await column.editBtn.click();
110+
this.pageView.assureColumnSettingsOpen(column);
110111
let sidebar = this.pageView.columnSettingsSidebar;
111112
await sidebar.openTab("Attributes");
112113
let exprEditor = sidebar.attributesTab.expressionEditor;

0 commit comments

Comments
 (0)