diff --git a/e2e/test/scenarios/question-reproductions/reproductions-3.cy.spec.js b/e2e/test/scenarios/question-reproductions/reproductions-3.cy.spec.js index 8172c8627ad0d29577ba78d552911f81ee15ca0f..c5da8b6a234cc6c2838decb888ffc03795ee8b3d 100644 --- a/e2e/test/scenarios/question-reproductions/reproductions-3.cy.spec.js +++ b/e2e/test/scenarios/question-reproductions/reproductions-3.cy.spec.js @@ -1582,3 +1582,51 @@ describe("issue 44668", () => { }); }); }); + +describe("issue 38989", () => { + beforeEach(() => { + restore(); + cy.signInAsAdmin(); + }); + + it("should be impossible to join with a table or question which is not in the same database (metabase#38989)", () => { + createQuestion( + { + query: { + "source-table": PEOPLE_ID, + fields: [ + ["field", PEOPLE.ID, { "base-type": "type/Number" }], + ["field", PEOPLE.EMAIL, { "base-type": "type/Text" }], + ], + joins: [ + { + fields: "all", + alias: "Orders", + // This is not a valid table ID in the Sample Database + "source-table": 123, + strategy: "left-join", + condition: [ + "=", + ["field", PEOPLE.ID, null], + ["field", ORDERS.USER_ID, { "join-alias": "Orders" }], + ], + }, + ], + }, + }, + { + visitQuestion: true, + }, + ); + + cy.findByTestId("query-builder-main") + .findByText("Show error details") + .click(); + + cy.findByTestId("query-builder-main") + .findByText( + /either it does not exist, or it belongs to a different Database/, + ) + .should("exist"); + }); +});