Skip to content
Snippets Groups Projects
Unverified Commit 03530501 authored by Alexander Polyankin's avatar Alexander Polyankin Committed by GitHub
Browse files

Fix BulkFilterModal breaking "between" custom expressions (#26119)

parent fa76af8c
No related branches found
No related tags found
No related merge requests found
......@@ -11,7 +11,9 @@ import type Dimension from "metabase-lib/Dimension";
export function fixBetweens(query: StructuredQuery): StructuredQuery {
const betweenFilters = query
.filters()
.filter(filter => filter.operatorName() === "between");
.filter(
filter => filter.isStandard() && filter.operatorName() === "between",
);
// find the first invalid filter (if any), and fix it recursively
for (const filter of betweenFilters) {
......
import { SAMPLE_DATABASE, ORDERS } from "__support__/sample_database_fixture";
import {
SAMPLE_DATABASE,
ORDERS,
PEOPLE,
} from "__support__/sample_database_fixture";
import StructuredQuery, {
isDimensionOption,
......@@ -138,7 +142,7 @@ describe("BulkFilterModal utils", () => {
expect(newFilter.operatorName()).toEqual("between");
});
it("ignores non-betwee filters", () => {
it("ignores non-between filters", () => {
const filter = new Filter(
["=", ["field", ORDERS.fields[1].id, null], 40, 50],
null,
......@@ -151,6 +155,24 @@ describe("BulkFilterModal utils", () => {
expect(newFilter.operatorName()).toEqual("=");
});
it("ignores between custom expressions", () => {
const filter = new Filter(
[
"between",
["field", ORDERS.CREATED_AT.id, null],
["field", PEOPLE.BIRTH_DATE.id, { "source-field": PEOPLE.ID.id }],
["field", PEOPLE.CREATED_AT.id, { "source-field": PEOPLE.ID.id }],
],
null,
query,
);
const newQuery = fixBetweens(filter.add());
const newFilter = newQuery.filters()[0];
expect(newFilter).toEqual(filter);
});
it("handles multiple invalid between filters", () => {
const testQuery = makeQuery({
filter: [
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment