41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { extractQuote } from './comment';
|
|
|
|
describe('extractQuote', () => {
|
|
it('returns null quote and full body for plain text', () => {
|
|
const result = extractQuote('Hello world');
|
|
expect(result.quote).toBeNull();
|
|
expect(result.body).toBe('Hello world');
|
|
});
|
|
|
|
it('extracts quote and body with double newline separator', () => {
|
|
const result = extractQuote('> "Some quoted text"\n\nReply body');
|
|
expect(result.quote).toBe('Some quoted text');
|
|
expect(result.body).toBe('Reply body');
|
|
});
|
|
|
|
it('extracts quote and body with single newline separator', () => {
|
|
const result = extractQuote('> "Quote"\nBody');
|
|
expect(result.quote).toBe('Quote');
|
|
expect(result.body).toBe('Body');
|
|
});
|
|
|
|
it('returns null quote when format does not match', () => {
|
|
const result = extractQuote('> Not a quote format');
|
|
expect(result.quote).toBeNull();
|
|
expect(result.body).toBe('> Not a quote format');
|
|
});
|
|
|
|
it('handles empty string', () => {
|
|
const result = extractQuote('');
|
|
expect(result.quote).toBeNull();
|
|
expect(result.body).toBe('');
|
|
});
|
|
|
|
it('does not match when quotes are missing', () => {
|
|
const result = extractQuote('> just a blockquote\n\nbody');
|
|
expect(result.quote).toBeNull();
|
|
expect(result.body).toBe('> just a blockquote\n\nbody');
|
|
});
|
|
});
|