Files
openchamber/packages/web/server/lib/notifications/message.test.js
T
Bohdan Triapitsyn f884919165 fix: keep notification summaries in plain text
- Force notification summaries to avoid markdown formatting
- Normalize generated notification text before system display
- Cover plain-text notification formatting with tests
2026-04-06 17:40:20 +03:00

75 lines
2.1 KiB
JavaScript

import { describe, expect, it } from 'bun:test';
import { prepareNotificationLastMessage, truncateNotificationText } from './message.js';
describe('notification message helpers', () => {
it('truncates oversized notification text', () => {
expect(truncateNotificationText('abcdef', 3)).toBe('abc...');
});
it('falls back to original message when summarization fails', async () => {
const message = '0123456789';
const summarize = async () => {
throw new Error('summarization failed');
};
const result = await prepareNotificationLastMessage({
message,
summarize,
settings: {
summarizeLastMessage: true,
summaryThreshold: 5,
summaryLength: 3,
maxLastMessageLength: 4,
},
});
expect(result).toBe('0123...');
});
it('falls back to original message when summary is empty', async () => {
const result = await prepareNotificationLastMessage({
message: '0123456789',
summarize: async () => ' ',
settings: {
summarizeLastMessage: true,
summaryThreshold: 5,
summaryLength: 3,
maxLastMessageLength: 4,
},
});
expect(result).toBe('0123...');
});
it('uses summary when summarization succeeds', async () => {
const result = await prepareNotificationLastMessage({
message: '0123456789',
summarize: async () => 'short summary',
settings: {
summarizeLastMessage: true,
summaryThreshold: 5,
summaryLength: 3,
maxLastMessageLength: 100,
},
});
expect(result).toBe('short summary');
});
it('normalizes markdown summary to plain text', async () => {
const result = await prepareNotificationLastMessage({
message: '0123456789',
summarize: async () => "**Committed.**\n\n- Commit: `85924b9d`\n- Message: `fix desktop notifications`",
settings: {
summarizeLastMessage: true,
summaryThreshold: 5,
summaryLength: 80,
maxLastMessageLength: 200,
},
});
expect(result).toBe('Committed. Commit: 85924b9d Message: fix desktop notifications');
});
});