mirror of
https://github.com/Youzini-afk/ST-Bionic-Memory-Ecology.git
synced 2026-05-15 22:30:38 +08:00
79 lines
2.0 KiB
JavaScript
79 lines
2.0 KiB
JavaScript
import assert from "node:assert/strict";
|
|
|
|
import {
|
|
onMessageUpdatedController,
|
|
registerCoreEventHooksController,
|
|
} from "../host/event-binding.js";
|
|
|
|
{
|
|
let invalidated = 0;
|
|
let rechecked = 0;
|
|
let refreshed = 0;
|
|
let ignored = null;
|
|
|
|
const result = onMessageUpdatedController(
|
|
{
|
|
invalidateRecallAfterHistoryMutation() {
|
|
invalidated += 1;
|
|
},
|
|
scheduleHistoryMutationRecheck() {
|
|
rechecked += 1;
|
|
},
|
|
refreshPersistedRecallMessageUi() {
|
|
refreshed += 1;
|
|
},
|
|
recordIgnoredMutationEvent(eventName, detail) {
|
|
ignored = { eventName, detail };
|
|
},
|
|
},
|
|
17,
|
|
{ source: "unit-test" },
|
|
);
|
|
|
|
assert.equal(invalidated, 0);
|
|
assert.equal(rechecked, 0);
|
|
assert.equal(refreshed, 1);
|
|
assert.equal(result.lightweight, true);
|
|
assert.equal(ignored?.eventName, "message-updated");
|
|
assert.equal(ignored?.detail?.reason, "lightweight-refresh-only");
|
|
}
|
|
|
|
{
|
|
const bindings = [];
|
|
const runtime = {
|
|
eventSource: {
|
|
on(eventName, handler) {
|
|
bindings.push({ eventName, handler });
|
|
},
|
|
},
|
|
eventTypes: {
|
|
MESSAGE_UPDATED: "message-updated",
|
|
MESSAGE_EDITED: "message-edited",
|
|
CHAT_CHANGED: "chat-changed",
|
|
},
|
|
handlers: {
|
|
onChatChanged() {},
|
|
onMessageEdited() {},
|
|
onMessageUpdated() {},
|
|
},
|
|
registerBeforeCombinePrompts() {
|
|
return null;
|
|
},
|
|
registerGenerationAfterCommands() {
|
|
return null;
|
|
},
|
|
getCoreEventBindingState() {
|
|
return { registered: false, cleanups: [] };
|
|
},
|
|
setCoreEventBindingState() {},
|
|
};
|
|
|
|
registerCoreEventHooksController(runtime);
|
|
const updatedBinding = bindings.find((entry) => entry.eventName === "message-updated");
|
|
const editedBinding = bindings.find((entry) => entry.eventName === "message-edited");
|
|
assert.equal(updatedBinding?.handler, runtime.handlers.onMessageUpdated);
|
|
assert.equal(editedBinding?.handler, runtime.handlers.onMessageEdited);
|
|
}
|
|
|
|
console.log("message-updated-lightweight tests passed");
|