@@ -4,7 +4,7 @@ import assert from "node:assert/strict";
4
4
import { describe , it } from "node:test" ;
5
5
import path from "path" ;
6
6
import { z } from "zod/v4" ;
7
- import { PatternEngine } from "./pattern .engine.ts" ;
7
+ import { MarkdownPatternsEngine } from "./markdown-patterns .engine.ts" ;
8
8
9
9
const currentDirectoryPath =
10
10
import . meta. dirname || path . dirname ( import . meta. url . replace ( "file://" , "" ) ) ;
@@ -34,13 +34,13 @@ function createTestQueryEngine() {
34
34
describe ( "PatternEngine" , ( ) => {
35
35
describe ( "constructor and factory methods" , ( ) => {
36
36
it ( "creates a PatternEngine with default query engine using cwd" , ( ) => {
37
- const engine = PatternEngine . cwd ( testPatternsDir ) ;
37
+ const engine = MarkdownPatternsEngine . cwd ( testPatternsDir ) ;
38
38
39
39
assert . ok ( engine ) ;
40
40
} ) ;
41
41
42
42
it ( "has a default config schema with query field" , ( ) => {
43
- const engine = PatternEngine . cwd ( testPatternsDir ) ;
43
+ const engine = MarkdownPatternsEngine . cwd ( testPatternsDir ) ;
44
44
const schema = engine . schema ;
45
45
46
46
// Verify the schema has a query field
@@ -51,7 +51,7 @@ describe("PatternEngine", () => {
51
51
52
52
describe ( "setQueryEngine" , ( ) => {
53
53
it ( "returns a new instance with updated query engine" , ( ) => {
54
- const engine1 = PatternEngine . cwd < TestInput > ( testPatternsDir ) ;
54
+ const engine1 = MarkdownPatternsEngine . cwd < TestInput > ( testPatternsDir ) ;
55
55
56
56
const customQuery = QueryEngine . default < {
57
57
content : string ;
@@ -69,7 +69,7 @@ describe("PatternEngine", () => {
69
69
it ( "updates query schema when setting new query engine" , ( ) => {
70
70
const customQuery = createTestQueryEngine ( ) ;
71
71
72
- const engine = PatternEngine . cwd < TestInput > ( testPatternsDir )
72
+ const engine = MarkdownPatternsEngine . cwd < TestInput > ( testPatternsDir )
73
73
. setQueryEngine ( customQuery )
74
74
. setConfigSchema ( z . object ( { status : z . string ( ) } ) ) ;
75
75
@@ -85,7 +85,7 @@ describe("PatternEngine", () => {
85
85
86
86
describe ( "setConfigSchema" , ( ) => {
87
87
it ( "returns a new instance with extended config schema" , ( ) => {
88
- const engine1 = PatternEngine . cwd ( testPatternsDir ) ;
88
+ const engine1 = MarkdownPatternsEngine . cwd ( testPatternsDir ) ;
89
89
const engine2 = engine1 . setConfigSchema (
90
90
z . object ( {
91
91
status : z
@@ -109,7 +109,9 @@ describe("PatternEngine", () => {
109
109
} ) ;
110
110
111
111
it ( "applies default values from config schema" , ( ) => {
112
- const engine = PatternEngine . cwd ( testPatternsDir ) . setConfigSchema (
112
+ const engine = MarkdownPatternsEngine . cwd (
113
+ testPatternsDir ,
114
+ ) . setConfigSchema (
113
115
z . object ( {
114
116
status : z
115
117
. enum ( [ "tag" , "blocked" , "ok" , "ignore" ] )
@@ -131,7 +133,7 @@ describe("PatternEngine", () => {
131
133
132
134
describe ( "getPatterns" , ( ) => {
133
135
it ( "loads patterns from markdown files" , async ( ) => {
134
- const engine = PatternEngine . cwd < TestInput > (
136
+ const engine = MarkdownPatternsEngine . cwd < TestInput > (
135
137
testPatternsDir ,
136
138
) . setQueryEngine ( createTestQueryEngine ( ) ) ;
137
139
@@ -153,7 +155,7 @@ describe("PatternEngine", () => {
153
155
} ) ;
154
156
155
157
it ( "handles duplicate folder/file names correctly" , async ( ) => {
156
- const engine = PatternEngine . cwd < TestInput > (
158
+ const engine = MarkdownPatternsEngine . cwd < TestInput > (
157
159
testPatternsDir ,
158
160
) . setQueryEngine ( createTestQueryEngine ( ) ) ;
159
161
const patterns = await engine . getPatterns ( ) ;
@@ -165,7 +167,7 @@ describe("PatternEngine", () => {
165
167
} ) ;
166
168
167
169
it ( "loads patterns with custom config fields" , async ( ) => {
168
- const engine = PatternEngine . cwd < TestInput > ( testPatternsDir )
170
+ const engine = MarkdownPatternsEngine . cwd < TestInput > ( testPatternsDir )
169
171
. setQueryEngine ( createTestQueryEngine ( ) )
170
172
. setConfigSchema (
171
173
z . object ( {
@@ -184,7 +186,7 @@ describe("PatternEngine", () => {
184
186
} ) ;
185
187
186
188
it ( "returns patterns sorted by name" , async ( ) => {
187
- const engine = PatternEngine . cwd < TestInput > (
189
+ const engine = MarkdownPatternsEngine . cwd < TestInput > (
188
190
testPatternsDir ,
189
191
) . setQueryEngine ( createTestQueryEngine ( ) ) ;
190
192
const patterns = await engine . getPatterns ( ) ;
@@ -204,7 +206,7 @@ query:
204
206
---` ) ;
205
207
206
208
try {
207
- const engine = PatternEngine . cwd < TestInput > (
209
+ const engine = MarkdownPatternsEngine . cwd < TestInput > (
208
210
testPatternsDir ,
209
211
) . setQueryEngine ( createTestQueryEngine ( ) ) ;
210
212
const patterns = await engine . getPatterns ( ) ;
@@ -225,7 +227,7 @@ query:
225
227
226
228
describe ( "matchingPatterns" , ( ) => {
227
229
it ( "filters patterns based on query evaluation" , async ( ) => {
228
- const engine = PatternEngine . cwd < TestInput > (
230
+ const engine = MarkdownPatternsEngine . cwd < TestInput > (
229
231
testPatternsDir ,
230
232
) . setQueryEngine ( createTestQueryEngine ( ) ) ;
231
233
@@ -245,7 +247,7 @@ query:
245
247
} ) ;
246
248
247
249
it ( "uses query engine to evaluate patterns" , async ( ) => {
248
- const engine = PatternEngine . cwd < TestInput > (
250
+ const engine = MarkdownPatternsEngine . cwd < TestInput > (
249
251
testPatternsDir ,
250
252
) . setQueryEngine ( createTestQueryEngine ( ) ) ;
251
253
@@ -272,7 +274,9 @@ query:
272
274
273
275
describe ( "schema getters" , ( ) => {
274
276
it ( "returns the correct zod schema" , ( ) => {
275
- const engine = PatternEngine . cwd ( testPatternsDir ) . setConfigSchema (
277
+ const engine = MarkdownPatternsEngine . cwd (
278
+ testPatternsDir ,
279
+ ) . setConfigSchema (
276
280
z . object ( {
277
281
status : z . string ( ) ,
278
282
priority : z . number ( ) ,
@@ -302,7 +306,9 @@ query:
302
306
} ) ;
303
307
304
308
it ( "generates valid JSON schema" , ( ) => {
305
- const engine = PatternEngine . cwd ( testPatternsDir ) . setConfigSchema (
309
+ const engine = MarkdownPatternsEngine . cwd (
310
+ testPatternsDir ,
311
+ ) . setConfigSchema (
306
312
z . object ( {
307
313
status : z . enum ( [ "blocked" , "ok" ] ) ,
308
314
} ) ,
@@ -331,7 +337,7 @@ query:
331
337
332
338
Invalid pattern.` ) ;
333
339
334
- const engine = PatternEngine . cwd ( testPatternsDir ) ;
340
+ const engine = MarkdownPatternsEngine . cwd ( testPatternsDir ) ;
335
341
336
342
await assert . rejects (
337
343
async ( ) => await engine . getPatterns ( ) ,
@@ -351,7 +357,9 @@ status: "ok"
351
357
352
358
Missing query field.` ) ;
353
359
354
- const engine = PatternEngine . cwd ( testPatternsDir ) . setConfigSchema (
360
+ const engine = MarkdownPatternsEngine . cwd (
361
+ testPatternsDir ,
362
+ ) . setConfigSchema (
355
363
z . object ( {
356
364
status : z . string ( ) ,
357
365
} ) ,
@@ -369,14 +377,16 @@ Missing query field.`);
369
377
370
378
describe ( "type inference" , ( ) => {
371
379
it ( "correctly infers config type" , ( ) => {
372
- const engine = PatternEngine . cwd ( testPatternsDir ) . setConfigSchema (
380
+ const engine = MarkdownPatternsEngine . cwd (
381
+ testPatternsDir ,
382
+ ) . setConfigSchema (
373
383
z . object ( {
374
384
status : z . enum ( [ "blocked" , "ok" ] ) ,
375
385
priority : z . number ( ) . optional ( ) ,
376
386
} ) ,
377
387
) ;
378
388
379
- type InferredConfig = PatternEngine . Config . Infer < typeof engine > ;
389
+ type InferredConfig = MarkdownPatternsEngine . Config . Infer < typeof engine > ;
380
390
381
391
const config : InferredConfig = {
382
392
query : { always : true } ,
0 commit comments