// (C) 2007-2019 GoodData Corporation import { reduceMAQLItems } from "../maql"; it("remains plain URI", () => { expect(reduceMAQLItems(["/gdc/md/projectId/obj/1"])).toEqual(["/gdc/md/projectId/obj/1"]); }); it("extract URI from MAQL", () => { expect(reduceMAQLItems(["SELECT SUM([/gdc/md/projectId/obj/1])"])).toEqual(["/gdc/md/projectId/obj/1"]); }); it("extract object URI from element URI in MAQL", () => { const maql = "SELECT SUM([/gdc/md/projectId/obj/1]) " + "WHERE [/gdc/md/projectId/obj/2]=[/gdc/md/projectId/obj/3/elements?id=10]"; expect(reduceMAQLItems([maql])).toEqual([ "/gdc/md/projectId/obj/1", "/gdc/md/projectId/obj/2", "/gdc/md/projectId/obj/3", ]); }); it("returns only one occurrence of URI", () => { expect(reduceMAQLItems(["/gdc/md/projectId/obj/1", "SELECT SUM([/gdc/md/projectId/obj/1])"])).toEqual([ "/gdc/md/projectId/obj/1", ]); }); it("mixes plain URI with MAQL URI", () => { expect(reduceMAQLItems(["/gdc/md/projectId/obj/1", "SELECT SUM([/gdc/md/projectId/obj/2])"])).toEqual([ "/gdc/md/projectId/obj/1", "/gdc/md/projectId/obj/2", ]); });