-
Nemanja Glumac authoredNemanja Glumac authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
18630-field-literals-in-joins.cy.spec.js 1.76 KiB
import { restore } from "e2e/support/helpers";
import { SAMPLE_DATABASE } from "e2e/support/cypress_sample_database";
const { ORDERS, ORDERS_ID, PEOPLE, PEOPLE_ID } = SAMPLE_DATABASE;
describe("issue 18630", () => {
beforeEach(() => {
restore();
cy.signInAsAdmin();
});
const QUERY_WITH_FIELD_CLAUSE = {
"source-query": {
"source-table": ORDERS_ID,
joins: [
{
fields: "all",
"source-table": PEOPLE_ID,
condition: [
"=",
["field", ORDERS.USER_ID, null],
["field", PEOPLE.ID, { "join-alias": "People - User" }],
],
alias: "People - User",
},
],
expressions: {
coalesce: [
"coalesce",
["field", ORDERS.USER_ID, null],
["field", PEOPLE.ID, { "join-alias": "People - User" }],
],
},
aggregation: [["count"]],
breakout: [["expression", "coalesce"]],
},
joins: [
{
fields: "all",
"source-table": PEOPLE_ID,
condition: [
"=",
["field", "coalesce", { "base-type": "type/Float" }],
["field", PEOPLE.ID, { "join-alias": "People" }],
],
alias: "People",
},
],
limit: 3,
};
const questionDetails = {
name: "18630",
query: QUERY_WITH_FIELD_CLAUSE,
};
it("should normally open queries with field literals in joins (metabase#18630)", () => {
cy.createQuestion(questionDetails, { visitQuestion: true });
// The query runs and we assert the page is not blank,
// which was caused by an infinite loop and a stack overflow.
cy.findByDisplayValue(questionDetails.name);
cy.get(".cellData").contains("29494 Anderson Drive");
cy.findByText("Showing 3 rows");
});
});