const { parseParamFromPrompt } = require('./titlePrompts');
describe('parseParamFromPrompt', () => {
// Original simple format tests
test('extracts parameter from simple format', () => {
const prompt = '
Simple Title';
expect(parseParamFromPrompt(prompt, 'title')).toBe('Simple Title');
});
// Parameter format tests
test('extracts parameter from parameter format', () => {
const prompt =
' Complex Title ';
expect(parseParamFromPrompt(prompt, 'title')).toBe('Complex Title');
});
// Edge cases and error handling
test('returns NO TOOL INVOCATION message for non-matching content', () => {
const prompt = 'Some random text without parameters';
expect(parseParamFromPrompt(prompt, 'title')).toBe(
'NO TOOL INVOCATION: Some random text without parameters',
);
});
test('returns default message for empty prompt', () => {
expect(parseParamFromPrompt('', 'title')).toBe('No title provided');
});
test('returns default message for null prompt', () => {
expect(parseParamFromPrompt(null, 'title')).toBe('No title provided');
});
// Multiple parameter tests
test('works with different parameter names', () => {
const prompt = 'John Doe';
expect(parseParamFromPrompt(prompt, 'name')).toBe('John Doe');
});
test('handles multiline content', () => {
const prompt = `This is a
multiline
description`;
expect(parseParamFromPrompt(prompt, 'description')).toBe(
'This is a\n multiline\n description',
);
});
// Whitespace handling
test('trims whitespace from extracted content', () => {
const prompt = ' Padded Title ';
expect(parseParamFromPrompt(prompt, 'title')).toBe('Padded Title');
});
test('handles whitespace in parameter format', () => {
const prompt = ' Padded Parameter Title ';
expect(parseParamFromPrompt(prompt, 'title')).toBe('Padded Parameter Title');
});
// Invalid format tests
test('handles malformed tags', () => {
const prompt = 'Incomplete Tag';
expect(parseParamFromPrompt(prompt, 'title')).toBe('NO TOOL INVOCATION: Incomplete Tag');
});
test('handles empty tags', () => {
const prompt = '';
expect(parseParamFromPrompt(prompt, 'title')).toBe('');
});
test('handles empty parameter tags', () => {
const prompt = '';
expect(parseParamFromPrompt(prompt, 'title')).toBe('');
});
});