// (C) 2007-2020 GoodData Corporation import * as errors from "../../errors/errors"; import * as HttpStatusCodes from "http-status-codes"; import * as request from "supertest"; import { createEndpoint } from "../../../utils/tests"; import { using2 } from "../using2"; import { schema } from "../../../schema/fixtures/dummySchema"; const app = createEndpoint(using2, schema); const USING_2_URI = "/gdc/md/mockproject/using2"; it("should return dashboard", () => { return request(app) .post(USING_2_URI) .set("Content-Type", "application/json") .send({ inUse: { nearest: 0, types: ["filterContext", "kpi", "visualizationObject", "visualizationWidget"], uri: "/gdc/md/mockproject/obj/dash.a", }, }) .expect(200) .then(res => { const response = res.body; expect(response.entries.length).toEqual(9); // TODO test all 8 objects (2 x vis, 2 x visWid, 3 x kpi, 1 x filterContext) }); }); it("should validate undefined structure with tag name", () => { return request(app) .post(USING_2_URI) .set("Content-Type", "application/json") .send({ undefinedTagName: {} }) .expect(HttpStatusCodes.BAD_REQUEST) .then(res => { expect(res.body).toEqual(errors.undefinedUsing2Structure("undefinedTagName")); }); }); it("should return attributes (attribute filters titles) from displayForm uris", () => { return request(app) .post(USING_2_URI) .set("Content-Type", "application/json") .send({ inUseMany: { nearest: 1, types: ["attribute"], uris: ["/gdc/md/mockproject/obj/1234.df"], }, }) .then(res => { const response = res.body; expect(response.useMany.length).toEqual(1); expect(response.useMany[0].uri).toEqual("/gdc/md/mockproject/obj/1234.df"); expect(response.useMany[0].entries.length).toEqual(1); expect(response.useMany[0].entries[0].link).toEqual("/gdc/md/mockproject/obj/1234"); }); });