Skip to content
Snippets Groups Projects
Unverified Commit 4aafb85d authored by Uladzimir Havenchyk's avatar Uladzimir Havenchyk Committed by GitHub
Browse files

Add repro for handling not saved dashcards with mapped filters and tabs (#38249)


* Add repro for handling not saved dashcards with mapped filters and tabs

* Fix repro test

* Update e2e/test/scenarios/dashboard-filters/reproductions/38245-negative-dashcard-id-switching-tabs.cy.spec.js

Co-authored-by: default avatarNemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>

---------

Co-authored-by: default avatarNemanja Glumac <31325167+nemanjaglumac@users.noreply.github.com>
parent 8b7b1f62
Branches
Tags
No related merge requests found
......@@ -174,7 +174,7 @@ export function visitDashboard(dashboard_id, { params = {} } = {}) {
let validQuestions = dashboardHasQuestions(dashcards);
// if dashboard has tabs, only expect cards on the first tab
if (tabs?.length > 0) {
if (tabs?.length > 0 && validQuestions) {
const firstTab = tabs[0];
validQuestions = validQuestions.filter(
card => card.dashboard_tab_id === firstTab.id,
......
import {
editDashboard,
getDashboardCard,
goToTab,
openQuestionsSidebar,
popover,
restore,
sidebar,
visitDashboard,
} from "e2e/support/helpers";
const TAB_1 = {
id: 1,
name: "Tab 1",
};
const TAB_2 = {
id: 2,
name: "Tab 2",
};
const DASHBOARD_TEXT_FILTER = {
id: "3",
name: "Text filter",
slug: "filter-text",
type: "string/contains",
};
describe.skip("issue 38245", () => {
beforeEach(() => {
cy.intercept("POST", "/api/card/*/query").as("cardQuery");
restore();
cy.signInAsNormalUser();
});
it("should not make a request to the server if the parameters are not saved (metabase#38245)", () => {
createDashboardWithTabs({
tabs: [TAB_1, TAB_2],
parameters: [DASHBOARD_TEXT_FILTER],
dashcards: [],
}).then(dashboard => visitDashboard(dashboard.id));
editDashboard();
openQuestionsSidebar();
sidebar().findByText("Orders").click();
cy.wait("@cardQuery");
cy.findByTestId("edit-dashboard-parameters-widget-container")
.findByText(DASHBOARD_TEXT_FILTER.name)
.click();
getDashboardCard().within(() => {
cy.findByText("Column to filter on");
cy.findByText("Select…").click();
});
popover().findByText("Source").click();
goToTab(TAB_2.name);
goToTab(TAB_1.name);
cy.log("cardQuery with not saved parameters leads to 500 response");
cy.wait("@cardQuery");
cy.get("@cardQuery.all").should("have.length", 2);
cy.get("@cardQuery").should(({ response }) => {
expect(response.statusCode).not.to.eq(500);
});
});
});
function createDashboardWithTabs({ dashcards, tabs, ...dashboardDetails }) {
return cy.createDashboard(dashboardDetails).then(({ body: dashboard }) => {
cy.request("PUT", `/api/dashboard/${dashboard.id}`, {
...dashboard,
dashcards,
tabs,
}).then(({ body: dashboard }) => cy.wrap(dashboard));
});
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment