mirror of
https://github.com/moltbot/moltbot.git
synced 2026-05-16 18:34:18 +00:00
test: dedupe directory cli mock reads
This commit is contained in:
@@ -58,6 +58,18 @@ function requireRecord(value: unknown): Record<string, unknown> {
|
||||
return value as Record<string, unknown>;
|
||||
}
|
||||
|
||||
function firstMockArg(mockFn: { mock: { calls: ReadonlyArray<ReadonlyArray<unknown>> } }): unknown {
|
||||
const call = mockFn.mock.calls[0];
|
||||
if (!call) {
|
||||
throw new Error("expected mock to be called");
|
||||
}
|
||||
return call[0];
|
||||
}
|
||||
|
||||
function firstRecordArg(mockFn: { mock: { calls: ReadonlyArray<ReadonlyArray<unknown>> } }) {
|
||||
return requireRecord(firstMockArg(mockFn));
|
||||
}
|
||||
|
||||
function runtimeErrors(): string[] {
|
||||
return runtimeState.defaultRuntime.error.mock.calls.map(([message]) => String(message));
|
||||
}
|
||||
@@ -110,18 +122,18 @@ describe("registerDirectoryCli", () => {
|
||||
});
|
||||
|
||||
expect(mocks.resolveInstallableChannelPlugin).toHaveBeenCalledTimes(1);
|
||||
const installArgs = requireRecord(mocks.resolveInstallableChannelPlugin.mock.calls.at(0)?.[0]);
|
||||
const installArgs = firstRecordArg(mocks.resolveInstallableChannelPlugin);
|
||||
expect(installArgs.rawChannel).toBe("demo-directory");
|
||||
expect(installArgs.allowInstall).toBe(true);
|
||||
expect(mocks.replaceConfigFile).toHaveBeenCalledTimes(1);
|
||||
const replaceArgs = requireRecord(mocks.replaceConfigFile.mock.calls.at(0)?.[0]);
|
||||
const replaceArgs = firstRecordArg(mocks.replaceConfigFile);
|
||||
expect(replaceArgs.nextConfig).toEqual({
|
||||
channels: {},
|
||||
plugins: { entries: { "demo-directory": { enabled: true } } },
|
||||
});
|
||||
expect(replaceArgs.baseHash).toBe("config-1");
|
||||
expect(self).toHaveBeenCalledTimes(1);
|
||||
expect(requireRecord(self.mock.calls.at(0)?.[0]).accountId).toBe("default");
|
||||
expect(firstRecordArg(self).accountId).toBe("default");
|
||||
expect(runtimeState.defaultRuntime.log).toHaveBeenCalledWith(
|
||||
JSON.stringify({ id: "self-1", name: "Family Phone" }, null, 2),
|
||||
);
|
||||
@@ -159,7 +171,7 @@ describe("registerDirectoryCli", () => {
|
||||
channel: null,
|
||||
});
|
||||
expect(self).toHaveBeenCalledTimes(1);
|
||||
expect(requireRecord(self.mock.calls.at(0)?.[0]).cfg).toBe(autoEnabledConfig);
|
||||
expect(firstRecordArg(self).cfg).toBe(autoEnabledConfig);
|
||||
expect(mocks.replaceConfigFile).toHaveBeenCalledWith({
|
||||
nextConfig: autoEnabledConfig,
|
||||
baseHash: "config-1",
|
||||
@@ -199,7 +211,7 @@ describe("registerDirectoryCli", () => {
|
||||
);
|
||||
|
||||
expect(listPeersLive).toHaveBeenCalledTimes(1);
|
||||
const listPeersLiveArgs = requireRecord(listPeersLive.mock.calls.at(0)?.[0]);
|
||||
const listPeersLiveArgs = firstRecordArg(listPeersLive);
|
||||
expect(listPeersLiveArgs.accountId).toBe("default");
|
||||
expect(listPeersLiveArgs.query).toBe("ada");
|
||||
expect(listPeersLiveArgs.limit).toBe(5);
|
||||
@@ -229,7 +241,7 @@ describe("registerDirectoryCli", () => {
|
||||
});
|
||||
|
||||
expect(listGroups).toHaveBeenCalledTimes(1);
|
||||
expect(requireRecord(listGroups.mock.calls.at(0)?.[0]).accountId).toBe("default");
|
||||
expect(firstRecordArg(listGroups).accountId).toBe("default");
|
||||
expect(runtimeState.defaultRuntime.log).toHaveBeenCalledWith(
|
||||
JSON.stringify([{ id: "channel:config", kind: "group" }], null, 2),
|
||||
);
|
||||
@@ -256,7 +268,7 @@ describe("registerDirectoryCli", () => {
|
||||
).rejects.toThrow("exit:1");
|
||||
|
||||
expect(mocks.resolveInstallableChannelPlugin).toHaveBeenCalledTimes(1);
|
||||
const installArgs = requireRecord(mocks.resolveInstallableChannelPlugin.mock.calls.at(0)?.[0]);
|
||||
const installArgs = firstRecordArg(mocks.resolveInstallableChannelPlugin);
|
||||
expect(installArgs.rawChannel).toBe("openclaw-weixin");
|
||||
expect(installArgs.allowInstall).toBe(true);
|
||||
expect(mocks.replaceConfigFile).not.toHaveBeenCalled();
|
||||
|
||||
Reference in New Issue
Block a user