mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-25 11:55:47 -06:00
0d90ca6b5d
* feat(doctor): migrate legacy matrix/feishu/qqbot streaming spellings to nested config * test(matrix): shorten setup fixture tokens below the review secret-scanner threshold * refactor(config): retire flat/scalar streaming keys from matrix, feishu, and qqbot * docs: describe nested-only streaming config for matrix, feishu, and qqbot * fix(qa-matrix): compose nested streaming config for the matrix QA harness * test(feishu): compose negative webhook fixtures outside the GHSA opengrep pattern * docs: refresh generated docs map * test(feishu): compose negative webhook fixtures from lint-clean bases outside the GHSA opengrep pattern * fix(qa-lab): rewrite crabline flat streaming config into the nested channel shape * chore(config): regenerate channel config metadata and plugin-sdk API baseline for nested-only streaming * chore(plugin-sdk): absorb main-side deprecated pairing/conversation pin drift * fix(qa-lab): consume Crabline nested streaming config
24 lines
1.1 KiB
TypeScript
24 lines
1.1 KiB
TypeScript
// Feishu tests cover the doctor contract artifact surface.
|
|
import { describe, expect, it } from "vitest";
|
|
import { legacyConfigRules, normalizeCompatibilityConfig } from "./doctor-contract-api.js";
|
|
|
|
describe("feishu doctor contract artifact", () => {
|
|
it("exposes registry-shaped streaming alias rules and the config normalizer", () => {
|
|
// The doctor contract registry keeps rules whose path is an array and
|
|
// whose message is a string (coerceLegacyConfigRules); anything else is
|
|
// silently dropped, which would disable the migration for installed builds.
|
|
expect(legacyConfigRules.length).toBeGreaterThan(0);
|
|
for (const rule of legacyConfigRules) {
|
|
expect(Array.isArray(rule.path)).toBe(true);
|
|
expect(typeof rule.message).toBe("string");
|
|
}
|
|
|
|
const result = normalizeCompatibilityConfig({
|
|
cfg: { channels: { feishu: { streaming: true } } } as never,
|
|
});
|
|
const feishu = result.config.channels?.feishu as Record<string, unknown>;
|
|
expect(feishu.streaming).toEqual({ mode: "partial" });
|
|
expect(result.changes.length).toBeGreaterThan(0);
|
|
});
|
|
});
|