@@ -77,24 +77,53 @@ describe("ReportPathResolver", () => {
7777 assert . deepStrictEqual ( files , [ "resolved:match-a" , "resolved:match-b" ] ) ;
7878 } ) ;
7979
80- it ( "merges multiple auto modes in declaration order " , ( ) => {
80+ it ( "returns test and coverage patterns for auto:test and auto:coverage " , ( ) => {
8181 const logger = createLoggerStub ( ) ;
8282 const resolver = new ReportPathResolver ( { } , logger ) ;
8383
8484 const patterns = resolver . resolvePatterns ( "auto:test, auto:coverage" ) ;
8585
86- assert . deepStrictEqual ( patterns , [
86+ // Verify test patterns are included (from JUnitParser and TAPParser)
87+ const testPatterns = [
8788 "**/junit*.xml" ,
8889 "**/test-results/**/*.xml" ,
8990 "**/test-reports/**/*.xml" ,
9091 "**/*test*.xml" ,
9192 "**/*.tap" ,
93+ ] ;
94+ for ( const pattern of testPatterns ) {
95+ assert . ok (
96+ patterns . includes ( pattern ) ,
97+ `Missing test pattern: ${ pattern } ` ,
98+ ) ;
99+ }
100+
101+ // Verify coverage patterns are included (from LCOVParser and CoberturaParser)
102+ const coveragePatterns = [
92103 "**/coverage/lcov.info" ,
104+ "**/lcov.info" ,
93105 "**/coverage/cobertura-coverage.xml" ,
94106 "**/coverage.xml" ,
95- "**/lcov.info" ,
96107 "**/cobertura.xml" ,
97- ] ) ;
108+ ] ;
109+ for ( const pattern of coveragePatterns ) {
110+ assert . ok (
111+ patterns . includes ( pattern ) ,
112+ `Missing coverage pattern: ${ pattern } ` ,
113+ ) ;
114+ }
115+
116+ // Verify no lint patterns are included
117+ const lintPatterns = [ "**/eslint-report.json" , "**/checkstyle.xml" ] ;
118+ for ( const pattern of lintPatterns ) {
119+ assert . ok (
120+ ! patterns . includes ( pattern ) ,
121+ `Should not include lint pattern: ${ pattern } ` ,
122+ ) ;
123+ }
124+
125+ // Verify total count matches expected (5 test + 5 coverage)
126+ assert . strictEqual ( patterns . length , 10 ) ;
98127 } ) ;
99128
100129 it ( "deduplicates overlapping auto modes" , ( ) => {
@@ -103,7 +132,8 @@ describe("ReportPathResolver", () => {
103132
104133 const patterns = resolver . resolvePatterns ( "auto:lint,auto:all" ) ;
105134
106- assert . deepStrictEqual ( patterns , [
135+ // All lint patterns should be included
136+ const lintPatterns = [
107137 "**/eslint-report.json" ,
108138 "**/eslint.json" ,
109139 "**/checkstyle-result.xml" ,
@@ -116,17 +146,72 @@ describe("ReportPathResolver", () => {
116146 "**/astro-check.txt" ,
117147 "**/astro-check-report.log" ,
118148 "**/astro-check-report.txt" ,
149+ ] ;
150+ for ( const pattern of lintPatterns ) {
151+ assert . ok (
152+ patterns . includes ( pattern ) ,
153+ `Missing lint pattern: ${ pattern } ` ,
154+ ) ;
155+ }
156+
157+ // All test patterns should be included
158+ const testPatterns = [
119159 "**/junit*.xml" ,
120160 "**/test-results/**/*.xml" ,
121161 "**/test-reports/**/*.xml" ,
122162 "**/*test*.xml" ,
123163 "**/*.tap" ,
164+ ] ;
165+ for ( const pattern of testPatterns ) {
166+ assert . ok (
167+ patterns . includes ( pattern ) ,
168+ `Missing test pattern: ${ pattern } ` ,
169+ ) ;
170+ }
171+
172+ // All coverage patterns should be included
173+ const coveragePatterns = [
124174 "**/coverage/lcov.info" ,
175+ "**/lcov.info" ,
125176 "**/coverage/cobertura-coverage.xml" ,
126177 "**/coverage.xml" ,
127- "**/lcov.info" ,
128178 "**/cobertura.xml" ,
129- ] ) ;
179+ ] ;
180+ for ( const pattern of coveragePatterns ) {
181+ assert . ok (
182+ patterns . includes ( pattern ) ,
183+ `Missing coverage pattern: ${ pattern } ` ,
184+ ) ;
185+ }
186+
187+ // Verify deduplication - total should be 12 lint + 5 test + 5 coverage = 22
188+ assert . strictEqual ( patterns . length , 22 ) ;
189+ } ) ;
190+
191+ it ( "gets patterns from parsers via getAutoPatterns" , ( ) => {
192+ const logger = createLoggerStub ( ) ;
193+ const resolver = new ReportPathResolver ( { } , logger ) ;
194+
195+ const autoPatterns = resolver . getAutoPatterns ( ) ;
196+
197+ // Verify structure
198+ assert . ok ( autoPatterns . test , "Should have test patterns" ) ;
199+ assert . ok ( autoPatterns . coverage , "Should have coverage patterns" ) ;
200+ assert . ok ( autoPatterns . lint , "Should have lint patterns" ) ;
201+
202+ // Verify test patterns come from JUnitParser and TAPParser
203+ assert . ok ( autoPatterns . test . includes ( "**/junit*.xml" ) ) ;
204+ assert . ok ( autoPatterns . test . includes ( "**/*.tap" ) ) ;
205+
206+ // Verify coverage patterns come from LCOVParser and CoberturaParser
207+ assert . ok ( autoPatterns . coverage . includes ( "**/coverage/lcov.info" ) ) ;
208+ assert . ok ( autoPatterns . coverage . includes ( "**/cobertura.xml" ) ) ;
209+
210+ // Verify lint patterns come from ESLintParser, CheckStyleParser, PrettierParser, AstroCheckParser
211+ assert . ok ( autoPatterns . lint . includes ( "**/eslint-report.json" ) ) ;
212+ assert . ok ( autoPatterns . lint . includes ( "**/checkstyle.xml" ) ) ;
213+ assert . ok ( autoPatterns . lint . includes ( "**/prettier-check.log" ) ) ;
214+ assert . ok ( autoPatterns . lint . includes ( "**/astro-check.log" ) ) ;
130215 } ) ;
131216
132217 it ( "excludes node_modules files from glob patterns" , async ( ) => {
0 commit comments