Show per-account delivery status
This commit is contained in:
1 parent
9b86cee9be
commit
22eb32e5bf
14 files changed
+402
-13
No files matched your search
@@ -1,6 +1,8 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import winston from 'winston';
|
||||
import { RealtimeEventHub, type RealtimeEvent } from '../src/web/events/index.js';
|
||||
import { LogBroadcaster } from '../src/web/log-broadcaster.js';
|
||||
import { attachLogSink } from '../src/utils/logger.js';
|
||||
|
||||
describe('LogBroadcaster realtime bridge', () => {
|
||||
it('publishes each log through the typed event hub', () => {
|
||||
@@ -67,4 +69,27 @@ describe('LogBroadcaster realtime bridge', () => {
|
||||
expect(serializedRecent).not.toContain('must-not-leak');
|
||||
expect(serializedRecent).not.toContain('"request"');
|
||||
});
|
||||
|
||||
it('preserves account metadata from a child logger', async () => {
|
||||
const broadcaster = new LogBroadcaster();
|
||||
const logger = winston.createLogger({ level: 'debug' });
|
||||
attachLogSink(logger, broadcaster);
|
||||
|
||||
logger.child({
|
||||
accountId: '@t2_owner:reddit.com',
|
||||
redditUsername: 'operator',
|
||||
}).warn('Matrix request failed: M_LIMIT_EXCEEDED');
|
||||
await new Promise<void>((resolve) => setImmediate(resolve));
|
||||
|
||||
expect(broadcaster.getRecent()).toEqual([
|
||||
expect.objectContaining({
|
||||
level: 'warn',
|
||||
message: 'Matrix request failed: M_LIMIT_EXCEEDED',
|
||||
data: {
|
||||
accountId: '@t2_owner:reddit.com',
|
||||
redditUsername: 'operator',
|
||||
},
|
||||
}),
|
||||
]);
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user