UNPKG

i18n-ai-translate

Version:

AI-powered localization CLI, Node library, and GitHub Action. Translate i18next JSON, Gettext PO, Java .properties, and iOS .strings with ChatGPT, Claude, Gemini, or local Ollama models.

54 lines 2.3 kB
"use strict"; // Focused coverage for processModelArgs — exercises the per-engine // defaults and the --tokens-per-minute parser in isolation. var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); process.env.OPENAI_API_KEY = "test"; process.env.ANTHROPIC_API_KEY = "test"; process.env.GEMINI_API_KEY = "test"; const engine_1 = __importDefault(require("../enums/engine")); const cli_helpers_1 = require("../cli_helpers"); describe("processModelArgs tokensPerMinute", () => { it("defaults to undefined (no cap) for every engine", () => { // The TPM cap is opt-in: mistakenly throttling a paid-tier user // is worse than relying on RPM + provider 429s for free-tier. for (const engine of [ engine_1.default.ChatGPT, engine_1.default.Claude, engine_1.default.Gemini, engine_1.default.Ollama, ]) { const args = (0, cli_helpers_1.processModelArgs)({ engine }); expect(args.tokensPerMinute).toBeUndefined(); } }); it("honors a user-supplied --tokens-per-minute value", () => { const args = (0, cli_helpers_1.processModelArgs)({ engine: engine_1.default.ChatGPT, tokensPerMinute: "50000", }); expect(args.tokensPerMinute).toBe(50000); }); it("treats --tokens-per-minute 0 as explicitly disabling the cap", () => { const args = (0, cli_helpers_1.processModelArgs)({ engine: engine_1.default.ChatGPT, tokensPerMinute: "0", }); expect(args.tokensPerMinute).toBeUndefined(); }); it("rejects negative --tokens-per-minute values", () => { expect(() => (0, cli_helpers_1.processModelArgs)({ engine: engine_1.default.ChatGPT, tokensPerMinute: "-1", })).toThrow(/non-negative/); }); it("rejects non-numeric --tokens-per-minute values", () => { expect(() => (0, cli_helpers_1.processModelArgs)({ engine: engine_1.default.ChatGPT, tokensPerMinute: "lots", })).toThrow(/non-negative/); }); }); //# sourceMappingURL=cli_helpers.spec.js.map