文件预览

config.test.js

查看 FTTR Copilot 技能包中的文件内容。

文件内容

test/config.test.js

import assert from "node:assert/strict";
import test from "node:test";

import { loadConfig } from "../src/config.js";

test("loadConfig reads required values and defaults", () => {
  const config = loadConfig({
    FTTRAI_RPC_URL: "https://fms-main.fttrai.com/api/custom/",
    FTTRAI_AUTH_TOKEN: "token",
  });

  assert.equal(config.baseUrl, "https://fms-main.fttrai.com/api/custom");
  assert.equal(config.token, "token");
  assert.equal(config.timeoutMs, 30000);
  assert.equal(config.maxRetries, 2);
});

test("loadConfig defaults FTTRAI_RPC_URL to fttrai endpoint", () => {
  const config = loadConfig({
    FTTRAI_AUTH_TOKEN: "token",
  });

  assert.equal(config.baseUrl, "https://fms-main.fttrai.com/api");
  assert.equal(config.token, "token");
});

test("loadConfig reports missing required env vars", () => {
  assert.throws(
    () => loadConfig({}),
    (error) => {
      assert.equal(error.code, "missing_config");
      assert.match(error.message, /FTTRAI_AUTH_TOKEN/);
      return true;
    },
  );
});

test("loadConfig rejects unsupported URL protocol", () => {
  assert.throws(
    () => loadConfig({
      FTTRAI_RPC_URL: "ftp://fttrai.example.com",
      FTTRAI_AUTH_TOKEN: "token",
    }),
    (error) => {
      assert.equal(error.code, "invalid_config");
      return true;
    },
  );
});