45 lines
2.6 KiB
TypeScript
Vendored
45 lines
2.6 KiB
TypeScript
Vendored
import { strict as assert } from "node:assert";
|
|
import { test } from "vitest";
|
|
import { columnHeaderCanvasPointerDisabled, columnHeaderClickShouldBeSuppressed, columnHeaderPreviewEnabled, columnHeaderPreviewOffsetForColumn, columnHeaderTooltipDisabled } from "../../apps/desktop/src/lib/dataGrid/dataGridColumnHeaderInteraction";
|
|
|
|
test("keeps column header tooltips closed during column pointer interactions", () => {
|
|
assert.equal(columnHeaderTooltipDisabled({ columnDragActive: false, columnResizeActive: false }), false);
|
|
assert.equal(columnHeaderTooltipDisabled({ columnDragActive: true, columnResizeActive: false }), true);
|
|
assert.equal(columnHeaderTooltipDisabled({ columnDragActive: false, columnResizeActive: true }), true);
|
|
assert.equal(columnHeaderTooltipDisabled({ columnDragActive: true, columnResizeActive: true }), true);
|
|
});
|
|
|
|
test("enables live column header reorder preview while dragging", () => {
|
|
assert.equal(columnHeaderPreviewEnabled({ columnDragActive: false }), false);
|
|
assert.equal(columnHeaderPreviewEnabled({ columnDragActive: true }), true);
|
|
});
|
|
|
|
test("ignores canvas pointer hit testing during column header interactions", () => {
|
|
assert.equal(columnHeaderCanvasPointerDisabled({ columnDragActive: false, columnResizeActive: false }), false);
|
|
assert.equal(columnHeaderCanvasPointerDisabled({ columnDragActive: true, columnResizeActive: false }), true);
|
|
assert.equal(columnHeaderCanvasPointerDisabled({ columnDragActive: false, columnResizeActive: true }), true);
|
|
});
|
|
|
|
test("suppresses the synthetic click that follows a column header drag", () => {
|
|
assert.equal(columnHeaderClickShouldBeSuppressed({ now: 1000, guardUntil: 0, suppressNextClick: false }), false);
|
|
assert.equal(columnHeaderClickShouldBeSuppressed({ now: 1000, guardUntil: 900, suppressNextClick: false }), false);
|
|
assert.equal(columnHeaderClickShouldBeSuppressed({ now: 1000, guardUntil: 1200, suppressNextClick: false }), true);
|
|
assert.equal(columnHeaderClickShouldBeSuppressed({ now: 1000, guardUntil: 0, suppressNextClick: true }), true);
|
|
});
|
|
|
|
test("calculates live reorder preview offsets for dragged and displaced columns", () => {
|
|
const base = {
|
|
columnDragActive: true,
|
|
sourceVisibleIndex: 1,
|
|
targetVisibleIndex: 3,
|
|
startX: 100,
|
|
currentX: 175,
|
|
sourceWidth: 240,
|
|
};
|
|
|
|
assert.equal(columnHeaderPreviewOffsetForColumn({ ...base, visibleColIdx: 1 }), 75);
|
|
assert.equal(columnHeaderPreviewOffsetForColumn({ ...base, visibleColIdx: 2 }), -240);
|
|
assert.equal(columnHeaderPreviewOffsetForColumn({ ...base, visibleColIdx: 3 }), -240);
|
|
assert.equal(columnHeaderPreviewOffsetForColumn({ ...base, visibleColIdx: 4 }), 0);
|
|
});
|