spec-copy-selection 1.0.4 → 1.0.6
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.
|
@@ -17,7 +17,19 @@ function shouldPrependSeparator(filePath, startLine, linesBeforeStart) {
|
|
|
17
17
|
if (startLine === 1) {
|
|
18
18
|
return false;
|
|
19
19
|
}
|
|
20
|
-
|
|
20
|
+
let lastSeparatorIndex = -1;
|
|
21
|
+
for (let i = linesBeforeStart.length - 1; i >= 0; i--) {
|
|
22
|
+
if (linesBeforeStart[i].trim() === '---') {
|
|
23
|
+
lastSeparatorIndex = i;
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (lastSeparatorIndex === -1) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
const linesAfterSeparator = linesBeforeStart.slice(lastSeparatorIndex + 1);
|
|
31
|
+
const hasContentAfterSeparator = linesAfterSeparator.some((line) => line.trim() !== '');
|
|
32
|
+
return hasContentAfterSeparator;
|
|
21
33
|
}
|
|
22
34
|
async function insertSeparatorToFile(filePath, startLine, endLine, lines) {
|
|
23
35
|
const updatedLines = [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readFileRange.js","sourceRoot":"","sources":["../../src/cli/readFileRange.ts"],"names":[],"mappings":";;;;;AAqBA,
|
|
1
|
+
{"version":3,"file":"readFileRange.js","sourceRoot":"","sources":["../../src/cli/readFileRange.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,9 @@ const bun_test_1 = require("bun:test");
|
|
|
4
4
|
const readFileRange_js_1 = require("./readFileRange.js");
|
|
5
5
|
(0, bun_test_1.describe)('shouldPrependSeparator', () => {
|
|
6
6
|
(0, bun_test_1.describe)('backlog.md file detection', () => {
|
|
7
|
-
(0, bun_test_1.test)('returns
|
|
7
|
+
(0, bun_test_1.test)('returns false for backlog.md files in first section (no separator before)', () => {
|
|
8
8
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 2, ['line1']);
|
|
9
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
9
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
10
10
|
});
|
|
11
11
|
(0, bun_test_1.test)('returns false for non-backlog.md files (requirements.md)', () => {
|
|
12
12
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/requirements.md', 2, ['line1']);
|
|
@@ -18,23 +18,23 @@ const readFileRange_js_1 = require("./readFileRange.js");
|
|
|
18
18
|
});
|
|
19
19
|
(0, bun_test_1.test)('handles relative path to backlog.md', () => {
|
|
20
20
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('backlog.md', 2, ['line1']);
|
|
21
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
21
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
22
22
|
});
|
|
23
23
|
(0, bun_test_1.test)('handles absolute path to backlog.md', () => {
|
|
24
24
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('/home/user/project/specs/feature/backlog.md', 2, [
|
|
25
25
|
'line1',
|
|
26
26
|
]);
|
|
27
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
27
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
28
28
|
});
|
|
29
29
|
(0, bun_test_1.test)('handles Windows absolute path to backlog.md', () => {
|
|
30
30
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('D:\\projects\\specs\\feature\\backlog.md', 2, [
|
|
31
31
|
'line1',
|
|
32
32
|
]);
|
|
33
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
33
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
34
34
|
});
|
|
35
35
|
(0, bun_test_1.test)('handles nested path to backlog.md', () => {
|
|
36
36
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/deep/nested/feature/backlog.md', 2, ['line1']);
|
|
37
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
37
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
38
38
|
});
|
|
39
39
|
});
|
|
40
40
|
(0, bun_test_1.describe)('startLine validation', () => {
|
|
@@ -42,74 +42,74 @@ const readFileRange_js_1 = require("./readFileRange.js");
|
|
|
42
42
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 1, []);
|
|
43
43
|
(0, bun_test_1.expect)(result).toBe(false);
|
|
44
44
|
});
|
|
45
|
-
(0, bun_test_1.test)('returns
|
|
45
|
+
(0, bun_test_1.test)('returns false when startLine is 2 and no separator exists (first section)', () => {
|
|
46
46
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 2, ['line1']);
|
|
47
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
47
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
48
48
|
});
|
|
49
|
-
(0, bun_test_1.test)('returns
|
|
49
|
+
(0, bun_test_1.test)('returns false when startLine is 10 and no separator exists (first section)', () => {
|
|
50
50
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 10, [
|
|
51
51
|
'line1',
|
|
52
52
|
'line2',
|
|
53
53
|
'line3',
|
|
54
54
|
]);
|
|
55
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
55
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
56
56
|
});
|
|
57
57
|
});
|
|
58
58
|
(0, bun_test_1.describe)('separator detection', () => {
|
|
59
|
-
(0, bun_test_1.test)('returns
|
|
59
|
+
(0, bun_test_1.test)('returns true when "---" exists with content after it (new section)', () => {
|
|
60
60
|
const linesBeforeStart = ['line1', '---', 'line3'];
|
|
61
61
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
62
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
62
|
+
(0, bun_test_1.expect)(result).toBe(true);
|
|
63
63
|
});
|
|
64
64
|
(0, bun_test_1.test)('returns false when separator exists with empty lines around it (bug fix)', () => {
|
|
65
65
|
const linesBeforeStart = ['a', 'b', '', '---', ''];
|
|
66
66
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 6, linesBeforeStart);
|
|
67
67
|
(0, bun_test_1.expect)(result).toBe(false);
|
|
68
68
|
});
|
|
69
|
-
(0, bun_test_1.test)('returns
|
|
69
|
+
(0, bun_test_1.test)('returns false when no "---" exists in any line (first section)', () => {
|
|
70
70
|
const linesBeforeStart = ['line1', 'line2', 'line3'];
|
|
71
71
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
72
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
72
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
73
73
|
});
|
|
74
|
-
(0, bun_test_1.test)('handles trimmed separators with leading whitespace', () => {
|
|
74
|
+
(0, bun_test_1.test)('handles trimmed separators with leading whitespace and content after', () => {
|
|
75
75
|
const linesBeforeStart = ['line1', ' ---', 'line3'];
|
|
76
76
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
77
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
77
|
+
(0, bun_test_1.expect)(result).toBe(true);
|
|
78
78
|
});
|
|
79
|
-
(0, bun_test_1.test)('handles trimmed separators with trailing whitespace', () => {
|
|
79
|
+
(0, bun_test_1.test)('handles trimmed separators with trailing whitespace and content after', () => {
|
|
80
80
|
const linesBeforeStart = ['line1', '--- ', 'line3'];
|
|
81
81
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
82
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
82
|
+
(0, bun_test_1.expect)(result).toBe(true);
|
|
83
83
|
});
|
|
84
|
-
(0, bun_test_1.test)('handles trimmed separators with both leading and trailing whitespace', () => {
|
|
84
|
+
(0, bun_test_1.test)('handles trimmed separators with both leading and trailing whitespace and content after', () => {
|
|
85
85
|
const linesBeforeStart = ['line1', ' --- ', 'line3'];
|
|
86
86
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
87
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
87
|
+
(0, bun_test_1.expect)(result).toBe(true);
|
|
88
88
|
});
|
|
89
|
-
(0, bun_test_1.test)('does NOT match partial separators: "----"', () => {
|
|
89
|
+
(0, bun_test_1.test)('does NOT match partial separators: "----" (first section)', () => {
|
|
90
90
|
const linesBeforeStart = ['line1', '----', 'line3'];
|
|
91
91
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
92
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
92
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
93
93
|
});
|
|
94
|
-
(0, bun_test_1.test)('does NOT match partial separators: "-- -"', () => {
|
|
94
|
+
(0, bun_test_1.test)('does NOT match partial separators: "-- -" (first section)', () => {
|
|
95
95
|
const linesBeforeStart = ['line1', '-- -', 'line3'];
|
|
96
96
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
97
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
97
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
98
98
|
});
|
|
99
|
-
(0, bun_test_1.test)('does NOT match partial separators: "---text"', () => {
|
|
99
|
+
(0, bun_test_1.test)('does NOT match partial separators: "---text" (first section)', () => {
|
|
100
100
|
const linesBeforeStart = ['line1', '---text', 'line3'];
|
|
101
101
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
102
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
102
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
103
103
|
});
|
|
104
|
-
(0, bun_test_1.test)('does NOT match partial separators: "text---"', () => {
|
|
104
|
+
(0, bun_test_1.test)('does NOT match partial separators: "text---" (first section)', () => {
|
|
105
105
|
const linesBeforeStart = ['line1', 'text---', 'line3'];
|
|
106
106
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
107
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
107
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
108
108
|
});
|
|
109
|
-
(0, bun_test_1.test)('returns
|
|
109
|
+
(0, bun_test_1.test)('returns true when separator is at the beginning with content after', () => {
|
|
110
110
|
const linesBeforeStart = ['---', 'line2', 'line3'];
|
|
111
111
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
112
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
112
|
+
(0, bun_test_1.expect)(result).toBe(true);
|
|
113
113
|
});
|
|
114
114
|
(0, bun_test_1.test)('returns false when separator is at the end of linesBeforeStart', () => {
|
|
115
115
|
const linesBeforeStart = ['line1', 'line2', '---'];
|
|
@@ -118,24 +118,24 @@ const readFileRange_js_1 = require("./readFileRange.js");
|
|
|
118
118
|
});
|
|
119
119
|
});
|
|
120
120
|
(0, bun_test_1.describe)('edge cases', () => {
|
|
121
|
-
(0, bun_test_1.test)('handles empty linesBeforeStart array', () => {
|
|
121
|
+
(0, bun_test_1.test)('handles empty linesBeforeStart array (first section)', () => {
|
|
122
122
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 2, []);
|
|
123
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
123
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
124
124
|
});
|
|
125
|
-
(0, bun_test_1.test)('handles array with only empty strings', () => {
|
|
125
|
+
(0, bun_test_1.test)('handles array with only empty strings (first section)', () => {
|
|
126
126
|
const linesBeforeStart = ['', '', ''];
|
|
127
127
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
128
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
128
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
129
129
|
});
|
|
130
|
-
(0, bun_test_1.test)('handles multiple separators in linesBeforeStart', () => {
|
|
130
|
+
(0, bun_test_1.test)('handles multiple separators in linesBeforeStart (uses last separator)', () => {
|
|
131
131
|
const linesBeforeStart = ['line1', '---', 'line3', '---', 'line5'];
|
|
132
132
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 6, linesBeforeStart);
|
|
133
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
133
|
+
(0, bun_test_1.expect)(result).toBe(true);
|
|
134
134
|
});
|
|
135
|
-
(0, bun_test_1.test)('handles separator with tabs', () => {
|
|
135
|
+
(0, bun_test_1.test)('handles separator with tabs and content after', () => {
|
|
136
136
|
const linesBeforeStart = ['line1', '\t---\t', 'line3'];
|
|
137
137
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
138
|
-
(0, bun_test_1.expect)(result).toBe(
|
|
138
|
+
(0, bun_test_1.expect)(result).toBe(true);
|
|
139
139
|
});
|
|
140
140
|
});
|
|
141
141
|
(0, bun_test_1.describe)('combined conditions', () => {
|
|
@@ -147,9 +147,26 @@ const readFileRange_js_1 = require("./readFileRange.js");
|
|
|
147
147
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 1, ['line1']);
|
|
148
148
|
(0, bun_test_1.expect)(result).toBe(false);
|
|
149
149
|
});
|
|
150
|
-
(0, bun_test_1.test)('returns
|
|
150
|
+
(0, bun_test_1.test)('returns true when separator exists with content after (new section)', () => {
|
|
151
151
|
const linesBeforeStart = ['line1', '---', 'line3'];
|
|
152
152
|
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
153
|
+
(0, bun_test_1.expect)(result).toBe(true);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
(0, bun_test_1.describe)('specific scenarios from backlog', () => {
|
|
157
|
+
(0, bun_test_1.test)('should NOT add separator when startLine is the separator line itself', () => {
|
|
158
|
+
const linesBeforeStart = ['1', '2', '3'];
|
|
159
|
+
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 4, linesBeforeStart);
|
|
160
|
+
(0, bun_test_1.expect)(result).toBe(false);
|
|
161
|
+
});
|
|
162
|
+
(0, bun_test_1.test)('should add separator when content exists after the last separator', () => {
|
|
163
|
+
const linesBeforeStart = ['1', '2', '3', '---', '5 xxx'];
|
|
164
|
+
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 6, linesBeforeStart);
|
|
165
|
+
(0, bun_test_1.expect)(result).toBe(true);
|
|
166
|
+
});
|
|
167
|
+
(0, bun_test_1.test)('should NOT add separator for first section even when startLine > 1', () => {
|
|
168
|
+
const linesBeforeStart = ['1 empty'];
|
|
169
|
+
const result = (0, readFileRange_js_1.shouldPrependSeparator)('specs/feature/backlog.md', 2, linesBeforeStart);
|
|
153
170
|
(0, bun_test_1.expect)(result).toBe(false);
|
|
154
171
|
});
|
|
155
172
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readFileRange.test.js","sourceRoot":"","sources":["../../src/cli/readFileRange.test.ts"],"names":[],"mappings":";;AAAA,uCAAkD;AAClD,yDAA4D;AAE5D,IAAA,mBAAQ,EAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAA,mBAAQ,EAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,IAAA,eAAI,EAAC,
|
|
1
|
+
{"version":3,"file":"readFileRange.test.js","sourceRoot":"","sources":["../../src/cli/readFileRange.test.ts"],"names":[],"mappings":"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"}
|