keap-client
Version:
A client to work with Infusionsoft/Keap API.
63 lines (55 loc) • 2.23 kB
text/typescript
import { Api } from "../../src/utils/api";
import { AccountInfo } from "../../src/models/AccountInfo";
describe("AccountInfo", () => {
let api: Api;
let accountInfo: AccountInfo;
beforeEach(() => {
api = new Api("valid-api-key");
accountInfo = new AccountInfo(api);
});
it("should create a new AccountInfo instance", () => {
expect(accountInfo).toBeInstanceOf(AccountInfo);
});
describe("getAccountInfo", () => {
it("should return undefined if no account info is found", async () => {
jest.spyOn(api, "makeApiCall").mockResolvedValueOnce(undefined);
const result = await accountInfo.getAccountInfo();
expect(result).toBeUndefined();
});
it("should return account info if found", async () => {
const accountInfoData = {
email: "1L4XH@example.com",
name: "John Doe",
};
jest.spyOn(api, "makeApiCall").mockResolvedValueOnce(accountInfoData);
const result = await accountInfo.getAccountInfo();
expect(result).toBeInstanceOf(Object);
expect(result).toBeDefined();
expect(result).toEqual(accountInfoData);
});
});
describe("updateAccountInfo", () => {
it("should return undefined if no account info is found", async () => {
jest.spyOn(api, "makeApiCall").mockResolvedValueOnce(undefined);
const result = await accountInfo.updateAccountInfo({});
expect(result).toBeUndefined();
});
it("should return the correct change if found", async () => {
const accountInfoData = {
email: "1L4XH@example.com",
name: "John Doe",
};
jest.spyOn(api, "makeApiCall").mockResolvedValueOnce(accountInfoData);
const firstResult = await accountInfo.getAccountInfo();
expect(firstResult).toBeInstanceOf(Object);
expect(firstResult).toBeDefined();
expect(firstResult).toEqual(accountInfoData);
const secondResult = { ...firstResult, name: "Jane Doe" };
jest.spyOn(api, "makeApiCall").mockResolvedValueOnce(secondResult);
const result = await accountInfo.updateAccountInfo(secondResult);
expect(result).toBeInstanceOf(Object);
expect(result).toBeDefined();
expect(result).toEqual(secondResult);
});
});
});