文件预览

openclaw.test.js

查看 Openclaw Command Center 技能包中的文件内容。

文件内容

tests/openclaw.test.js

const { describe, it } = require("node:test");
const assert = require("node:assert");
const { extractJSON } = require("../src/openclaw");

describe("openclaw module", () => {
  describe("extractJSON()", () => {
    it("returns null for null input", () => {
      assert.strictEqual(extractJSON(null), null);
    });

    it("returns null for empty string", () => {
      assert.strictEqual(extractJSON(""), null);
    });

    it("returns null for non-JSON text", () => {
      assert.strictEqual(extractJSON("no json here"), null);
    });

    it("extracts JSON object from clean input", () => {
      const result = extractJSON('{"key": "value"}');
      assert.strictEqual(result, '{"key": "value"}');
    });

    it("extracts JSON array from clean input", () => {
      const result = extractJSON("[1, 2, 3]");
      assert.strictEqual(result, "[1, 2, 3]");
    });

    it("strips non-JSON prefix from output", () => {
      const result = extractJSON('Some warning text\n{"key": "value"}');
      assert.strictEqual(result, '{"key": "value"}');
    });

    it("handles prefix with special characters", () => {
      const result = extractJSON('Doctor warnings: OK\n[{"id": 1}]');
      assert.strictEqual(result, '[{"id": 1}]');
    });
  });
});