fix(check): repair typed test and cli drift

This commit is contained in:
Vincent Koc
2026-04-06 15:14:20 +01:00
parent 9502642f47
commit ac6f696baa
8 changed files with 20 additions and 24 deletions

View File

@@ -84,7 +84,7 @@ describe("AcpxRuntime fresh reset wrapper", () => {
resolve: () => "codex",
list: () => ["codex"],
},
permissionMode: "default",
permissionMode: "approve-reads",
});
const wrappedStore = mocks.state.capturedStore;
@@ -128,7 +128,7 @@ describe("AcpxRuntime fresh reset wrapper", () => {
resolve: () => "codex",
list: () => ["codex"],
},
permissionMode: "default",
permissionMode: "approve-reads",
});
const wrappedStore = mocks.state.capturedStore;

View File

@@ -15,24 +15,27 @@ import {
} from "acpx/runtime";
import type { AcpRuntime } from "../runtime-api.js";
type AcpSessionRecord = Record<string, unknown> & {
name?: string;
};
type AcpSessionStore = {
load(sessionId: string): Promise<AcpSessionRecord | undefined>;
save(record: AcpSessionRecord): Promise<void>;
};
type AcpSessionStore = AcpRuntimeOptions["sessionStore"];
type AcpSessionRecord = Parameters<AcpSessionStore["save"]>[0];
type AcpLoadedSessionRecord = Awaited<ReturnType<AcpSessionStore["load"]>>;
type ResetAwareSessionStore = AcpSessionStore & {
markFresh: (sessionKey: string) => void;
};
function readSessionRecordName(record: AcpSessionRecord): string {
if (typeof record !== "object" || record === null) {
return "";
}
const { name } = record as { name?: unknown };
return typeof name === "string" ? name.trim() : "";
}
function createResetAwareSessionStore(baseStore: AcpSessionStore): ResetAwareSessionStore {
const freshSessionKeys = new Set<string>();
return {
async load(sessionId: string): Promise<AcpSessionRecord | undefined> {
async load(sessionId: string): Promise<AcpLoadedSessionRecord> {
const normalized = sessionId.trim();
if (normalized && freshSessionKeys.has(normalized)) {
return undefined;
@@ -41,7 +44,7 @@ function createResetAwareSessionStore(baseStore: AcpSessionStore): ResetAwareSes
},
async save(record: AcpSessionRecord): Promise<void> {
await baseStore.save(record);
const sessionName = typeof record.name === "string" ? record.name.trim() : "";
const sessionName = readSessionRecordName(record);
if (sessionName) {
freshSessionKeys.delete(sessionName);
}

View File

@@ -106,7 +106,7 @@ describe("PlaywrightDiffScreenshotter", () => {
});
it("renders PDF output when format is pdf", async () => {
const { pages, _browser, screenshotter } = await createScreenshotterHarness();
const { pages, screenshotter } = await createScreenshotterHarness();
const pdfPath = path.join(rootDir, "preview.pdf");
await screenshotter.screenshotHtml({

View File

@@ -86,6 +86,7 @@ import { deliverDiscordReply } from "./reply-delivery.js";
let conversationRuntimePromise: Promise<typeof import("./agent-components.runtime.js")> | undefined;
let componentsRuntimePromise: Promise<typeof import("../components.js")> | undefined;
let replyRuntimePromise: Promise<typeof import("openclaw/plugin-sdk/reply-runtime")> | undefined;
let replyPipelineRuntimePromise:
| Promise<typeof import("openclaw/plugin-sdk/channel-reply-pipeline")>
| undefined;

View File

@@ -16,7 +16,6 @@ const {
clientFetchUserMock,
clientGetPluginMock,
clientHandleDeployRequestMock,
_createDiscordAutoPresenceControllerMock,
createDiscordMessageHandlerMock,
createDiscordNativeCommandMock,
createdBindingManagers,
@@ -29,7 +28,6 @@ const {
listSkillCommandsForAgentsMock,
monitorLifecycleMock,
reconcileAcpThreadBindingsOnStartupMock,
_resolveDiscordAllowlistConfigMock,
resolveDiscordAccountMock,
resolveNativeCommandsEnabledMock,
resolveNativeSkillsEnabledMock,

View File

@@ -12,13 +12,11 @@ vi.mock("./ddg-client.js", () => ({
describe("duckduckgo web search provider", () => {
let createDuckDuckGoWebSearchProvider: typeof import("./ddg-search-provider.js").createDuckDuckGoWebSearchProvider;
let ddgClientTesting: typeof import("./ddg-client.js").__testing;
let _plugin: typeof import("../index.js").default;
beforeAll(async () => {
({ createDuckDuckGoWebSearchProvider } = await import("./ddg-search-provider.js"));
({ __testing: ddgClientTesting } =
await vi.importActual<typeof import("./ddg-client.js")>("./ddg-client.js"));
({ default: plugin } = await import("../index.js"));
});
beforeEach(() => {

View File

@@ -83,12 +83,8 @@ const {
createFeishuReplyDispatcherMock,
resolveBoundConversationMock,
touchBindingMock,
_resolveAgentRouteMock,
resolveConfiguredBindingRouteMock,
ensureConfiguredBindingRouteReadyMock,
_dispatchReplyFromConfigMock,
_withReplyDispatcherMock,
_finalizeInboundContextMock,
getMessageFeishuMock,
listFeishuThreadMessagesMock,
sendMessageFeishuMock,

View File

@@ -112,9 +112,9 @@ export function defineImportedProgramCommandGroupSpec<
);
}
export function defineImportedProgramCommandGroupSpecs<
const TDefinitions extends readonly AnyImportedProgramCommandGroupDefinition[],
>(definitions: TDefinitions): CommandGroupDescriptorSpec<(program: Command) => Promise<void>>[] {
export function defineImportedProgramCommandGroupSpecs(
definitions: readonly AnyImportedProgramCommandGroupDefinition[],
): CommandGroupDescriptorSpec<(program: Command) => Promise<void>>[] {
return definitions.map((definition) => ({
commandNames: definition.commandNames,
register: async (program: Command) => {