Skip to content

Commit

Permalink
Fix filter number validation with trailing zeroes
Browse files Browse the repository at this point in the history
  • Loading branch information
texodus committed Aug 31, 2023
1 parent bec2442 commit cf5c197
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,8 @@ pub struct FilterColumnProps {
}

impl PartialEq for FilterColumnProps {
fn eq(&self, _rhs: &Self) -> bool {
false
// self.idx == other.idx && self.filter == other.filter
fn eq(&self, rhs: &Self) -> bool {
self.idx == rhs.idx && self.filter == rhs.filter && self.on_keydown == rhs.on_keydown
}
}

Expand Down Expand Up @@ -219,13 +218,15 @@ impl FilterColumnProps {
};

if let Some(input) = filter_input {
filter_column.2 = input;
let update = ViewConfigUpdate {
filter: Some(filter),
..ViewConfigUpdate::default()
};
if input != filter_column.2 {
filter_column.2 = input;
let update = ViewConfigUpdate {
filter: Some(filter),
..ViewConfigUpdate::default()
};

ApiFuture::spawn(self.update_and_render(update));
ApiFuture::spawn(self.update_and_render(update));
}
}
}
}
Expand Down
40 changes: 38 additions & 2 deletions rust/perspective-viewer/test/js/regressions.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@
// ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃
// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

import { test } from "@playwright/test";
import { compareContentsToSnapshot } from "@finos/perspective-test";
import { test, expect } from "@playwright/test";
import {
compareContentsToSnapshot,
shadow_type,
} from "@finos/perspective-test";

async function get_contents(page) {
return await page.evaluate(async () => {
Expand Down Expand Up @@ -57,4 +60,37 @@ test.describe("Regression tests", () => {
"regressions-not_in-filter-works-correctly.txt",
]);
});

test("Numeric filter input does not trigger render on trailing zeroes", async ({
page,
}) => {
await page.evaluate(async () => {
const viewer = document.querySelector("perspective-viewer");
await viewer.restore({
filter: [["Sales", ">", 1.1]],
settings: true,
});
});

// await new Promise((x) => setTimeout(x, 10000));

await shadow_type(
page,
"0001",
true,
"perspective-viewer",
"input.num-filter"
);

const value = await page.evaluate(async () => {
const viewer = document.querySelector("perspective-viewer");
return viewer.shadowRoot.querySelector("input.num-filter").value;
});

expect(value).toEqual("1.10001");
const contents = await get_contents(page);
await compareContentsToSnapshot(contents, [
"numeric-filter-input-does-not-trigger-render-on-trailing-zeroes.txt",
]);
});
});
Binary file modified tools/perspective-test/results.tar.gz
Binary file not shown.

0 comments on commit cf5c197

Please sign in to comment.