@davidbolaji/termii-node
Version:
Node.js SDK for Termii API – send SMS, voice, OTP, and manage messaging with ease.
42 lines (41 loc) • 2.33 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const PhonebookService_1 = require("../messaging/campaign/PhonebookService");
describe("PhonebookService", () => {
let httpClient;
let service;
beforeEach(() => {
httpClient = { request: jest.fn() };
service = new PhonebookService_1.PhonebookService(httpClient);
});
it("fetches phonebooks", async () => {
const mockResponse = { data: [], links: {}, meta: {} };
httpClient.request.mockResolvedValue(mockResponse);
const result = await service.fetchPhonebooks();
expect(httpClient.request).toHaveBeenCalledWith("/phonebooks", expect.objectContaining({ method: "GET", authLocation: "query" }));
expect(result).toEqual(mockResponse);
});
it("creates a phonebook", async () => {
const payload = { api_key: "key", phonebook_name: "MyBook", description: "desc" };
const mockResponse = { message: "Phonebook added successfully" };
httpClient.request.mockResolvedValue(mockResponse);
const result = await service.createPhonebook(payload);
expect(httpClient.request).toHaveBeenCalledWith("/phonebooks", expect.objectContaining({ method: "POST", data: payload, authLocation: "body" }));
expect(result).toEqual(mockResponse);
});
it("updates a phonebook", async () => {
const payload = { api_key: "key", phonebook_name: "NewName", description: "newdesc" };
const mockResponse = { message: "Phonebook Updated Successfully" };
httpClient.request.mockResolvedValue(mockResponse);
const result = await service.updatePhonebook("123", payload);
expect(httpClient.request).toHaveBeenCalledWith("/phonebooks/123", expect.objectContaining({ method: "PATCH", data: payload, authLocation: "body" }));
expect(result).toEqual(mockResponse);
});
it("deletes a phonebook", async () => {
const mockResponse = { message: "Phonebook deleted successfully" };
httpClient.request.mockResolvedValue(mockResponse);
const result = await service.deletePhonebook("123");
expect(httpClient.request).toHaveBeenCalledWith("/phonebooks/123", expect.objectContaining({ method: "DELETE", authLocation: "query" }));
expect(result).toEqual(mockResponse);
});
});