import { describe, expect, it } from 'vitest'; import { looksLikeMarkdown } from './markdown-clipboard'; describe('looksLikeMarkdown (issue #30)', () => { it('recognizes a heading + list document', () => { expect(looksLikeMarkdown('# Title\n\n- one\n- two')).toBe(true); }); it('recognizes a fenced code block on its own', () => { expect(looksLikeMarkdown('```\nconst x = 1;\n```')).toBe(true); }); it('recognizes an ordered list and a table', () => { expect(looksLikeMarkdown('1. first\n2. second')).toBe(true); expect(looksLikeMarkdown('| a | b |\n| --- | --- |\n| 1 | 2 |')).toBe(true); }); it('does not mangle plain prose that merely contains markdown-ish characters', () => { expect(looksLikeMarkdown("Just a *reminder* to buy milk - don't forget!")).toBe(false); expect(looksLikeMarkdown('Meeting at 3pm. Bring #2 pencils and a laptop.')).toBe(false); expect(looksLikeMarkdown('Rated 5/5 - would recommend.')).toBe(false); }); it('requires at least two signals for a lone weak marker', () => { expect(looksLikeMarkdown('# Just one heading, nothing else')).toBe(false); }); it('treats empty or whitespace-only text as not markdown', () => { expect(looksLikeMarkdown('')).toBe(false); expect(looksLikeMarkdown(' \n ')).toBe(false); }); });