diff --git a/packages/perspective-viewer-datagrid/src/js/data_listener/format_cell.js b/packages/perspective-viewer-datagrid/src/js/data_listener/format_cell.js index 8b5a9dda98..fb339176b7 100644 --- a/packages/perspective-viewer-datagrid/src/js/data_listener/format_cell.js +++ b/packages/perspective-viewer-datagrid/src/js/data_listener/format_cell.js @@ -24,7 +24,7 @@ const FORMAT_CACHE = new FormatterCache(); * @returns */ export function format_cell( - parts, + title, val, plugins = {}, use_table_schema = false @@ -33,8 +33,6 @@ export function format_cell( return "-"; } - // TODO don't do this on every cell render ... - const title = parts[this._config.split_by.length]; const type = (use_table_schema && this._table_schema[title]) || this._schema[title] || diff --git a/packages/perspective-viewer-datagrid/src/js/data_listener/format_tree_header.js b/packages/perspective-viewer-datagrid/src/js/data_listener/format_tree_header.js index 3e487f9f0d..b7f62024b7 100644 --- a/packages/perspective-viewer-datagrid/src/js/data_listener/format_tree_header.js +++ b/packages/perspective-viewer-datagrid/src/js/data_listener/format_tree_header.js @@ -28,7 +28,7 @@ export function* format_tree_header(paths = [], row_headers, regularTable) { path = path.slice(0, path.length - 1).fill(""); const formatted = format_cell.call( this, - [row_headers[path.length - 1]], + row_headers[path.length - 1], last, plugins, true diff --git a/packages/perspective-viewer-datagrid/src/js/data_listener/index.js b/packages/perspective-viewer-datagrid/src/js/data_listener/index.js index 60fdf78ee7..cebe3471ea 100644 --- a/packages/perspective-viewer-datagrid/src/js/data_listener/index.js +++ b/packages/perspective-viewer-datagrid/src/js/data_listener/index.js @@ -87,7 +87,7 @@ export function createDataListener() { column.map((x) => format_cell.call( this, - path_parts, + path_parts[this._config.split_by.length], x, regularTable[PRIVATE_PLUGIN_SYMBOL] ) diff --git a/packages/perspective-viewer-datagrid/test/js/superstore.spec.js b/packages/perspective-viewer-datagrid/test/js/superstore.spec.js index a555302b60..32fc90a7e9 100644 --- a/packages/perspective-viewer-datagrid/test/js/superstore.spec.js +++ b/packages/perspective-viewer-datagrid/test/js/superstore.spec.js @@ -11,7 +11,11 @@ // ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ import { test } from "@playwright/test"; -import { run_standard_tests } from "@finos/perspective-test"; +import { + compareContentsToSnapshot, + compareLightDOMContents, + run_standard_tests, +} from "@finos/perspective-test"; async function getDatagridContents(page) { return await page.evaluate(async () => { @@ -39,4 +43,20 @@ test.describe("Datagrid with superstore data set", () => { }); run_standard_tests("perspective-viewer-datagrid", getDatagridContents); + + test("Row headers are printed correctly", async ({ page }) => { + await page.evaluate(async () => { + await document.querySelector("perspective-viewer").restore({ + plugin: "Datagrid", + group_by: ["Ship Date"], + split_by: ["Ship Mode"], + columns: ["Sales", "Quantity", "Discount", "Profit"], + }); + }); + + compareContentsToSnapshot( + await getDatagridContents(page), + "row-headers-are-printed-correctly" + ); + }); }); diff --git a/tools/perspective-test/results.tar.gz b/tools/perspective-test/results.tar.gz index aa86ff0bd2..05b906841b 100644 Binary files a/tools/perspective-test/results.tar.gz and b/tools/perspective-test/results.tar.gz differ