import { describe, expect, it } from 'vitest';
import { ChatMessage } from '@/types/message';
import { chatHistoryPrompts } from './index';
describe('chatHistoryPrompts', () => {
// Test with empty messages array
it('should return empty chat history with empty messages', () => {
const messages: ChatMessage[] = [];
const result = chatHistoryPrompts(messages);
expect(result).toBe(`
`);
});
// Test with single message
it('should format single message correctly', () => {
const messages = [
{
role: 'user',
content: 'Hello',
},
] as ChatMessage[];
const result = chatHistoryPrompts(messages);
expect(result).toBe(`
Hello
`);
});
// Test with multiple messages
it('should format multiple messages correctly', () => {
const messages = [
{
role: 'user',
content: 'Hello',
},
{
role: 'assistant',
content: 'Hi there!',
},
{
role: 'user',
content: 'How are you?',
},
] as ChatMessage[];
const result = chatHistoryPrompts(messages);
expect(result).toBe(`
Hello
Hi there!
How are you?
`);
});
// Test with messages containing special characters
it('should handle messages with special characters', () => {
const messages = [
{
role: 'user',
content: 'Hello & goodbye',
},
{
role: 'assistant',
content: ' & ',
},
] as ChatMessage[];
const result = chatHistoryPrompts(messages);
expect(result).toBe(`
Hello & goodbye
&
`);
});
// Test with messages containing multiple lines
it('should handle multi-line messages correctly', () => {
const messages = [
{
role: 'user',
content: 'Line 1\nLine 2',
},
] as ChatMessage[];
const result = chatHistoryPrompts(messages);
expect(result).toBe(`
Line 1\nLine 2
`);
});
});