import { mockCrmApp } from "@calcom/web/test/utils/bookingScenario/bookingScenario"; import type { TFunction } from "next-i18next"; import { describe, expect, test, vi } from "vitest"; import { getCrm } from "@calcom/app-store/_utils/getCrm"; import CrmManager from "./crmManager"; // vi.mock("@calcom/app-store/_utils/getCrm"); describe.skip("crmManager tests", () => { test("Set crmService if not set", async () => { const spy = vi.spyOn(CrmManager.prototype as any, "getCrmService"); const crmManager = new CrmManager({ id: 1, type: "credential_crm", key: {}, userId: 1, teamId: null, appId: "crm-app", invalid: false, user: { email: "test@test.com" }, }); expect(crmManager.crmService).toBe(null); crmManager.getContacts(["test@test.com"]); expect(spy).toBeCalledTimes(1); }); describe("creating events", () => { test("If the contact exists, create the event", async () => { const tFunc = vi.fn(() => "foo"); vi.spyOn(getCrm).mockReturnValue({ getContacts: () => [ { id: "contact-id", email: "test@test.com", }, ], createContacts: [{ id: "contact-id", email: "test@test.com" }], }); // This mock is defaulting to non implemented mock return const mockedCrmApp = mockCrmApp("salesforce", { getContacts: [ { id: "contact-id", email: "test@test.com", }, ], createContacts: [{ id: "contact-id", email: "test@test.com" }], }); const crmManager = new CrmManager({ id: 1, type: "salesforce_crm", key: { clientId: "test-client-id", }, userId: 1, teamId: null, appId: "salesforce", invalid: false, user: { email: "test@test.com" }, }); crmManager.createEvent({ title: "Test Meeting", type: "test-meeting", description: "Test Description", startTime: Date(), endTime: Date(), organizer: { email: "organizer@test.com", name: "Organizer", timeZone: "America/New_York", language: { locale: "en", translate: tFunc as TFunction, }, }, attendees: [ { email: "test@test.com", name: "Test", timeZone: "America/New_York", language: { locale: "en", translate: tFunc as TFunction, }, }, ], }); console.log(mockedCrmApp); }); }); });