Skip to content
Snippets Groups Projects
Unverified Commit d8696945 authored by Mahatthana (Kelvin) Nomsawadi's avatar Mahatthana (Kelvin) Nomsawadi Committed by GitHub
Browse files

Attempt to fix pivot table not collapsing on public/static embedding (#37429)


* Attempt to fix pivot table not collapsing on public/static embedding

* remove extending dataset result with viz settings

* spec

---------

Co-authored-by: default avatarAleksandr Lesnenko <alxnddr@gmail.com>
parent c00349dc
Branches ss/side-bar-improvements/main
Tags
No related merge requests found
......@@ -211,10 +211,10 @@ class PublicQuestionInner extends Component {
className="full flex-full z1"
onUpdateVisualizationSettings={settings =>
this.setState({
result: updateIn(
result,
["card", "visualization_settings"],
s => ({ ...s, ...settings }),
card: updateIn(
card,
["visualization_settings"],
previousSettings => ({ ...previousSettings, ...settings }),
),
})
}
......
import { Route } from "react-router";
import { fireEvent } from "@testing-library/react";
import { renderWithProviders, screen, within } from "__support__/ui";
import {
setupPublicCardQueryEndpoints,
......@@ -12,6 +13,7 @@ import {
createMockEmbedDataset,
} from "metabase-types/api/mocks";
import type { VisualizationProps } from "metabase/visualizations/types";
import { PublicQuestion } from "./PublicQuestion";
registerVisualizations();
......@@ -20,6 +22,39 @@ const FAKE_UUID = "123456";
const QUESTION_NAME = "Public question";
const VisualizationMock = ({
onUpdateVisualizationSettings,
rawSeries,
}: VisualizationProps) => {
const [
{
card,
data: { rows },
},
] = rawSeries;
return (
<div>
<div>
{rows[0].map((value, i) => (
<span key={i}>{value}</span>
))}
</div>
<div data-testid="settings">
{JSON.stringify(card.visualization_settings)}
</div>
<button onClick={() => onUpdateVisualizationSettings({ foo: "bar" })}>
update settings
</button>
</div>
);
};
jest.mock(
"metabase/visualizations/components/Visualization",
() => VisualizationMock,
);
async function setup() {
setupPublicQuestionEndpoints(
FAKE_UUID,
......@@ -58,4 +93,18 @@ describe("PublicQuestion", () => {
within(screen.getByRole("banner")).getByText(QUESTION_NAME),
).toBeInTheDocument();
});
it("should update card settings when visualization component changes them (metabase#37429)", async () => {
await setup();
fireEvent.click(
screen.getByRole("button", {
name: /update settings/i,
}),
);
expect(screen.getByTestId("settings")).toHaveTextContent(
JSON.stringify({ foo: "bar" }),
);
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment