@davidbolaji/termii-node
Version:
Node.js SDK for Termii API – send SMS, voice, OTP, and manage messaging with ease.
58 lines (57 loc) • 2.37 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ContactService_1 = require("../messaging/campaign/ContactService");
const form_data_1 = __importDefault(require("form-data"));
describe("ContactService", () => {
let httpClient;
let service;
beforeEach(() => {
httpClient = { request: jest.fn() };
service = new ContactService_1.ContactService(httpClient);
});
it("fetches contacts", async () => {
httpClient.request.mockResolvedValueOnce({ data: [] });
const result = await service.fetchContacts("123");
expect(httpClient.request).toHaveBeenCalledWith("/phonebooks/123/contacts", expect.any(Object));
expect(result.data).toEqual([]);
});
it("adds a contact", async () => {
httpClient.request.mockResolvedValueOnce({
data: { phone_number: "12345" },
});
const result = await service.addContact("123", { phone_number: "12345" });
expect(httpClient.request).toHaveBeenCalledWith("/phonebooks/123/contacts", expect.objectContaining({
method: "POST",
data: { phone_number: "12345" },
}));
expect(result.data.phone_number).toBe("12345");
});
it("uploads contacts", async () => {
httpClient.request.mockResolvedValueOnce({
message: "Upload started",
});
const result = await service.uploadContacts({
file: Buffer.from("fake"),
country_code: "234",
pid: "123",
});
expect(httpClient.request).toHaveBeenCalledWith("/contacts/upload", expect.objectContaining({
method: "POST",
data: expect.any(form_data_1.default),
}));
expect(result.message).toBe("Upload started");
});
it("deletes a contact", async () => {
httpClient.request.mockResolvedValueOnce({
message: "Contact deleted successfully",
});
const result = await service.deleteContact("999");
expect(httpClient.request).toHaveBeenCalledWith("/contacts/999", expect.objectContaining({
method: "DELETE",
}));
expect(result.message).toBe("Contact deleted successfully");
});
});