Continue runtime and scheduler cleanup

This commit is contained in:
ejclaw
2026-04-08 01:06:47 +09:00
parent e1837759c0
commit 8e8c771ab1
13 changed files with 525 additions and 384 deletions

View File

@@ -0,0 +1,56 @@
import { describe, expect, it } from 'vitest';
import {
getFixedRoleChannelName,
getMissingRoleChannelMessage,
resolveHandoffCursorKey,
resolveHandoffRoleOverride,
} from './message-runtime-shared.js';
describe('message-runtime-shared', () => {
it('prefers explicit target role over inferred handoff metadata', () => {
expect(
resolveHandoffRoleOverride({
target_role: 'arbiter',
intended_role: 'reviewer',
reason: 'reviewer-follow-up',
}),
).toBe('arbiter');
});
it('falls back from intended role to reason prefix when needed', () => {
expect(
resolveHandoffRoleOverride({
target_role: null,
intended_role: 'reviewer',
reason: 'arbiter-follow-up',
}),
).toBe('reviewer');
expect(
resolveHandoffRoleOverride({
target_role: null,
intended_role: null,
reason: 'arbiter-follow-up',
}),
).toBe('arbiter');
});
it('builds owner and role-scoped cursor keys', () => {
expect(resolveHandoffCursorKey('room-1')).toBe('room-1');
expect(resolveHandoffCursorKey('room-1', 'owner')).toBe('room-1');
expect(resolveHandoffCursorKey('room-1', 'reviewer')).toBe(
'room-1:reviewer',
);
});
it('returns fixed role channel names and user-facing missing-channel errors', () => {
expect(getFixedRoleChannelName('reviewer')).toBe('discord-review');
expect(getFixedRoleChannelName('arbiter')).toBe('discord-arbiter');
expect(getMissingRoleChannelMessage('reviewer')).toContain(
'discord-review',
);
expect(getMissingRoleChannelMessage('arbiter')).toContain(
'discord-arbiter',
);
});
});