Add paired delivery diagnostic logging

This commit is contained in:
Eyejoker
2026-04-04 23:58:57 +09:00
parent 80567de4ed
commit ac225f2b1e
9 changed files with 370 additions and 62 deletions

View File

@@ -1,6 +1,9 @@
import { describe, expect, it } from 'vitest';
import { findChannelForDeliveryRole } from './router.js';
import {
findChannelForDeliveryRole,
resolveChannelForDeliveryRole,
} from './router.js';
import { type Channel } from './types.js';
function createChannel(name: string, ownedJids: string[]): Channel {
@@ -51,4 +54,41 @@ describe('findChannelForDeliveryRole', () => {
ownerChannel,
);
});
it('reports fallback metadata when a role-specific channel is unavailable', () => {
const ownerChannel = createChannel('discord-main', [jid]);
expect(
resolveChannelForDeliveryRole([ownerChannel], jid, 'reviewer'),
).toEqual(
expect.objectContaining({
channel: ownerChannel,
requestedRoleChannelName: 'discord-review',
selectedChannelName: 'discord-main',
usedRoleChannel: false,
fallbackUsed: true,
}),
);
});
it('reports direct role routing metadata when the role channel exists', () => {
const ownerChannel = createChannel('discord-main', [jid]);
const reviewerChannel = createChannel('discord-review', [jid]);
expect(
resolveChannelForDeliveryRole(
[ownerChannel, reviewerChannel],
jid,
'reviewer',
),
).toEqual(
expect.objectContaining({
channel: reviewerChannel,
requestedRoleChannelName: 'discord-review',
selectedChannelName: 'discord-review',
usedRoleChannel: true,
fallbackUsed: false,
}),
);
});
});