UNPKG

ppurio

Version:

뿌리오 비공식 메세지 전송 API 라이브러리

118 lines (98 loc) 2.89 kB
import { Ppurio, SendMessageParams, CancelReservationParams, PpurioException, } from "../src"; import axios from "axios"; jest.mock("axios"); const mockedAxios = axios as jest.Mocked<typeof axios>; describe("Ppurio", () => { const userId = "testId"; const sender = "01012345678"; const receiver = "01098765432"; const ppurio = new Ppurio(userId); const sendMessageParams: SendMessageParams = { sender, receiver, message: "Test message", }; describe("sendMessage", () => { it("should send a message successfully", async () => { const mockedResponse = { data: { result: "ok", type: "sms", msgid: "mockMessageId", ok_cnt: 1, }, }; mockedAxios.post.mockResolvedValueOnce(mockedResponse); const response = await ppurio.sendMessage(sendMessageParams); expect(response).toEqual({ type: "sms", messageId: "mockMessageId", okCount: 1, }); }); }); describe("cancelReservation", () => { it("should reserve and cancel a message successfully", async () => { const reservationParams = { ...sendMessageParams, appointmentDate: "20230528120000", // 예약발송 설정 }; const mockedReservationResponse = { data: { result: "ok", type: "sms", msgid: "mockReservationId", ok_cnt: 1, }, }; mockedAxios.post.mockResolvedValueOnce(mockedReservationResponse); const reservationResponse = await ppurio.sendMessage(reservationParams); expect(reservationResponse).toEqual({ type: "sms", messageId: "mockReservationId", okCount: 1, }); const cancelReservationParams: CancelReservationParams = { messageId: reservationResponse.messageId, }; const mockedCancelReservationResponse = { data: { result: "ok", ok_cnt: 1, }, }; mockedAxios.post.mockResolvedValueOnce(mockedCancelReservationResponse); const cancelResponse = await ppurio.cancelReservation( cancelReservationParams ); expect(cancelResponse).toEqual({ okCount: 1, }); }); }); }); describe("PpurioException", () => { it("should throw PpurioException with invalid userId", async () => { const invalidUserId = "invalidUserId"; const ppurioWithInvalidUserId = new Ppurio(invalidUserId); const sendMessageParams = { sender: "1234567890", receiver: "0987654321", message: "Hello, World!", }; const mockedResponse = { data: { result: "invalid_member", }, }; mockedAxios.post.mockResolvedValueOnce(mockedResponse); await expect( ppurioWithInvalidUserId.sendMessage(sendMessageParams) ).rejects.toThrowError(PpurioException); }); });