UNPKG

@lavanjan/ip-info

Version:

A simple utility to get IP address, device, and location details

53 lines (52 loc) 2.67 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const ip_info_1 = __importDefault(require("../src/ip-info")); // Enable jest-fetch-mock const jest_fetch_mock_1 = __importDefault(require("jest-fetch-mock")); jest_fetch_mock_1.default.enableMocks(); describe("IPInfo Class Tests", () => { beforeEach(() => { jest_fetch_mock_1.default.resetMocks(); // Reset mocks before each test }); it("should fetch and return IP information including device and location details", () => __awaiter(void 0, void 0, void 0, function* () { // Mocking fetch responses jest_fetch_mock_1.default.mockResponseOnce(JSON.stringify({ ip: "192.168.1.1" }) // Mock response for public IP ); jest_fetch_mock_1.default.mockResponseOnce(JSON.stringify({ country: "USA", regionName: "California", city: "Los Angeles", zip: "90001", lat: 34.0522, lon: -118.2437, }) // Mock response for location details ); const result = yield ip_info_1.default.getInfo(); expect(result).toHaveProperty("ip", "192.168.1.1"); expect(result.device).toHaveProperty("os"); expect(result.device).toHaveProperty("browser"); expect(result.location).toHaveProperty("country", "USA"); expect(result.location).toHaveProperty("city", "Los Angeles"); })); it("should handle errors if the fetch fails", () => __awaiter(void 0, void 0, void 0, function* () { jest_fetch_mock_1.default.mockRejectOnce(new Error("Failed to fetch public IP")); try { yield ip_info_1.default.getInfo(); } catch (error) { expect(error).toEqual(new Error("Failed to fetch public IP")); } })); });