UNPKG

@traversets/code-extractor

Version:

The TypeScript Code Extractor and Analyzer can be handy for RAG (Retrieval-Augmented Generation) systems for codebases. It provides a detailed and structured representation of the codebase that can be converted into embeddings, enabling more effective adv

151 lines 6.21 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const https = __importStar(require("https")); const http_service_1 = require("./http-service"); jest.mock("https"); jest.mock("../logger"); describe("HttpClient", () => { let httpClient; let mockRequest; let mockResponse; beforeEach(() => { httpClient = new http_service_1.HttpClient(); mockRequest = jest.fn(); mockResponse = { on: jest.fn(), statusCode: 200, }; https.request.mockImplementation((options, callback) => { callback(mockResponse); return { on: jest.fn(), write: jest.fn(), end: jest.fn(), }; }); }); afterEach(() => { jest.clearAllMocks(); }); describe("get", () => { it("Should send a Get request and return passed data", async () => { const mockData = { key: "value" }; mockResponse.on = jest.fn().mockImplementation((event, callback) => { if (event === "data") callback(JSON.stringify(mockData)); if (event === "end") callback(); }); const result = await httpClient.get({}, { path: "/test" }); expect(https.request).toHaveBeenCalledWith(expect.objectContaining({ method: "GET", path: "/test", }), expect.any(Function)); expect(result).toEqual(mockData); }); }); describe("post", () => { it("should send a POST request with payload and return parsed data", async () => { const mockPayload = { data: "test" }; const mockData = { created: true }; mockResponse.on = jest.fn().mockImplementation((event, callback) => { if (event === "data") callback(JSON.stringify(mockData)); if (event === "end") callback(); }); const result = await httpClient.post(mockPayload, { path: "/test" }); expect(https.request).toHaveBeenCalledWith(expect.objectContaining({ method: "POST", path: "/test", }), expect.any(Function)); expect(result).toEqual(mockData); }); }); describe("put", () => { it("should send a PUT request with payload and return parsed data", async () => { const mockPayload = { data: "test" }; mockResponse.on = jest.fn().mockImplementation((event, callback) => { if (event === "data") callback(JSON.stringify(mockResponse)); if (event === "end") callback(); }); const result = await httpClient.put(mockPayload, { path: "/test" }); expect(https.request).toHaveBeenCalledWith(expect.objectContaining({ method: "PUT", path: "/test", }), expect.any(Function)); expect(result).toEqual({ statusCode: 200 }); }); }); describe("delete", () => { it("should send a DELETE request and return parsed data", async () => { mockResponse.on = jest.fn().mockImplementation((event, callback) => { if (event === "data") callback(JSON.stringify(mockResponse)); if (event === "end") callback(); }); const result = await httpClient.delete({ path: "/test" }); expect(https.request).toHaveBeenCalledWith(expect.objectContaining({ method: "DELETE", path: "/test", }), expect.any(Function)); expect(result).toEqual({ statusCode: 200 }); }); }); describe("error handling", () => { it("should reject the promise if status code is 500 or greater", async () => { mockResponse.statusCode = 500; mockResponse.on = jest.fn().mockImplementation((event, callBack) => { if (event === "end") callBack(); }); await expect(httpClient.get({}, { path: "/test" })).rejects.toThrow("Request failed with status code 500"); }); it("should reject the promise if JSON parsing fails", async () => { mockResponse.on = jest.fn().mockImplementation((event, callback) => { if (event === "data") callback("Invalid JSON"); if (event === "end") callback(); }); await expect(httpClient.get({}, { path: "/test" })).rejects.toThrow("Failed to parse response data"); }); }); // describe("generateHeader", () => { // it("should return the correct default headers", () => { // const headers = httpClient.generateHeader(); // expect(headers).toEqual({ // "Content-Type": "application/json", // connection: "keep-alive", // accept: "*/*", // }); // }); // }); }); //# sourceMappingURL=http-service.spec.js.map