growork 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,65 @@
1
+ import { describe, it } from 'node:test';
2
+ import assert from 'node:assert';
3
+
4
+ // 复制 sync.ts 中的纯函数进行测试
5
+
6
+ function extractTitleFromMarkdown(content: string): string {
7
+ const match = content.match(/^#\s+(.+)$/m);
8
+ return match ? match[1].trim() : '未命名文档';
9
+ }
10
+
11
+ describe('从 Markdown 提取标题', () => {
12
+ it('应提取标准 H1 标题', () => {
13
+ const content = '# Hello World\n\nSome content';
14
+ assert.strictEqual(extractTitleFromMarkdown(content), 'Hello World');
15
+ });
16
+
17
+ it('应提取带空格的标题', () => {
18
+ const content = '# Spaced Title \n\nContent';
19
+ assert.strictEqual(extractTitleFromMarkdown(content), 'Spaced Title');
20
+ });
21
+
22
+ it('应只提取第一个 H1 标题', () => {
23
+ const content = '# First Title\n\n# Second Title\n\nContent';
24
+ assert.strictEqual(extractTitleFromMarkdown(content), 'First Title');
25
+ });
26
+
27
+ it('应忽略 H2-H6 标题', () => {
28
+ const content = '## H2 Title\n\n### H3 Title\n\n# Actual H1\n\nContent';
29
+ assert.strictEqual(extractTitleFromMarkdown(content), 'Actual H1');
30
+ });
31
+
32
+ it('应处理无标题的内容', () => {
33
+ const content = 'Just some content without a title';
34
+ assert.strictEqual(extractTitleFromMarkdown(content), '未命名文档');
35
+ });
36
+
37
+ it('应处理空内容', () => {
38
+ assert.strictEqual(extractTitleFromMarkdown(''), '未命名文档');
39
+ });
40
+
41
+ it('应处理只有其他级别标题的内容', () => {
42
+ const content = '## Only H2\n\n### Only H3';
43
+ assert.strictEqual(extractTitleFromMarkdown(content), '未命名文档');
44
+ });
45
+
46
+ it('应处理标题在非首行', () => {
47
+ const content = '\n\nSome intro\n\n# Title Here\n\nContent';
48
+ assert.strictEqual(extractTitleFromMarkdown(content), 'Title Here');
49
+ });
50
+
51
+ it('应处理中文标题', () => {
52
+ const content = '# 产品需求文档\n\n## 概述';
53
+ assert.strictEqual(extractTitleFromMarkdown(content), '产品需求文档');
54
+ });
55
+
56
+ it('应处理包含特殊字符的标题', () => {
57
+ const content = '# PRD: 用户登录 v1.0 (测试)\n\nContent';
58
+ assert.strictEqual(extractTitleFromMarkdown(content), 'PRD: 用户登录 v1.0 (测试)');
59
+ });
60
+
61
+ it('应处理标题后无换行的情况', () => {
62
+ const content = '# Title Only';
63
+ assert.strictEqual(extractTitleFromMarkdown(content), 'Title Only');
64
+ });
65
+ });
File without changes
File without changes