Skip to content
Snippets Groups Projects
Unverified Commit 562defa9 authored by Emmad Usmani's avatar Emmad Usmani Committed by GitHub
Browse files

remove unused viz series utils (#42422)

parent f6522a5d
No related branches found
No related tags found
No related merge requests found
import { assocIn } from "icepick";
import { isNotNull } from "metabase/lib/types";
import { SERIES_SETTING_KEY } from "metabase/visualizations/shared/settings/series";
import type { VisualizationSettings, Card } from "metabase-types/api/card";
import type { Series, TransformedSeries } from "metabase-types/api/dataset";
import { keyForSingleSeries } from "./settings/series";
export const updateSeriesColor = (
settings: VisualizationSettings,
......@@ -15,41 +11,6 @@ export const updateSeriesColor = (
return assocIn(settings, [SERIES_SETTING_KEY, seriesKey, "color"], color);
};
export const findSeriesByKey = (series: Series, key: string) => {
return series.find(singleSeries => keyForSingleSeries(singleSeries) === key);
};
export const getOrderedSeries = (
series: Series,
settings: VisualizationSettings,
isReversed?: boolean,
) => {
if (
(settings["graph.dimensions"] &&
settings["graph.dimensions"].length <= 1) ||
!settings["graph.series_order"]
) {
return series;
}
const orderedSeries = settings["graph.series_order"]
?.filter(orderedItem => orderedItem.enabled)
.map(orderedItem => findSeriesByKey(series, orderedItem.key))
.filter(isNotNull);
if (isReversed) {
orderedSeries.reverse();
}
if ("_raw" in series) {
const transformedOrderedSeries = [...orderedSeries] as TransformedSeries;
transformedOrderedSeries._raw = series._raw;
return transformedOrderedSeries;
}
return orderedSeries;
};
export const getNameForCard = (card: Card) => {
return card?.name || "";
};
import _ from "underscore";
import type { TransformedSeries } from "metabase-types/api";
import {
createMockSeriesOrderSetting,
createMockVisualizationSettings,
} from "metabase-types/api/mocks/card";
import { createMockSeries } from "metabase-types/api/mocks/series";
import { getOrderedSeries } from "./series";
type setupSeriesOpts = { name: string; enabled?: boolean }[];
const setupSeries = (opts: setupSeriesOpts) => ({
series: createMockSeries(opts),
settings: createMockVisualizationSettings({
"graph.dimensions": ["one", "two"],
"graph.series_order": opts.map(opt => createMockSeriesOrderSetting(opt)),
}),
});
describe("series utils", () => {
describe("getOrderedSeries", () => {
it("should reorder the series", () => {
const { series, settings } = setupSeries([
{ name: "foo" },
{ name: "bar" },
]);
const sortedSettings = {
...settings,
"graph.series_order":
settings["graph.series_order"] &&
_.sortBy(settings["graph.series_order"], "name"),
};
const orderedSeries = getOrderedSeries(series, sortedSettings);
expect(orderedSeries).toHaveLength(2);
expect(orderedSeries[0].card.name).toBe("bar");
expect(orderedSeries[1].card.name).toBe("foo");
});
it("should filter hidden series", () => {
const { series, settings } = setupSeries([
{ name: "foo" },
{ name: "bar", enabled: false },
]);
const orderedSeries = getOrderedSeries(series, settings);
expect(orderedSeries).toHaveLength(1);
});
it("should preserve _raw prop if present", () => {
const { series, settings } = setupSeries([
{ name: "foo" },
{ name: "bar", enabled: false },
]);
const transformedSeries = [...series] as TransformedSeries;
transformedSeries._raw = createMockSeries([{ name: "foobar" }]);
const orderedSeries = getOrderedSeries(transformedSeries, settings);
expect(orderedSeries).toHaveProperty("_raw");
});
it("should reverse the order of a series when `isReversed` is `true`", () => {
const { series, settings } = setupSeries([
{ name: "foo" },
{ name: "bar" },
{ name: "baz" },
]);
const stackedOrderedSeries = getOrderedSeries(series, settings, true);
expect(stackedOrderedSeries).toHaveLength(3);
expect(stackedOrderedSeries[0].card.name).toBe("baz");
expect(stackedOrderedSeries[1].card.name).toBe("bar");
expect(stackedOrderedSeries[2].card.name).toBe("foo");
});
});
});
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