11import { toArray , map } from 'rxjs/operators' ;
2+ import { lastValueFrom } from 'rxjs' ;
23
34import { Architect } from '@angular-devkit/architect' ;
45import { TestingArchitectHost } from '@angular-devkit/architect/testing' ;
@@ -48,12 +49,14 @@ describe('Lint', () => {
4849 '@krema/angular-eslint-stylelint-builder:lint' ,
4950 {
5051 eslintFilePatterns : [ 'src/**/*.ts' ] ,
52+ eslintConfig : 'eslint.config.js' ,
5153 stylelintFilePatterns : [ 'src/**/*.css' ] ,
54+ stylelintConfig : 'stylelint.config.js' ,
5255 } ,
5356 { logger : logger }
5457 ) ;
55- const loggerPromise = logger
56- . pipe (
58+ const loggerPromise = lastValueFrom (
59+ logger . pipe (
5760 toArray ( ) ,
5861 map ( messages =>
5962 messages . map ( y => {
@@ -62,7 +65,7 @@ describe('Lint', () => {
6265 } )
6366 )
6467 )
65- . toPromise ( ) ;
68+ ) ;
6669
6770 // The "result" member (of type BuilderOutput) is the next output.
6871 await run . result ;
@@ -127,13 +130,15 @@ describe('Lint', () => {
127130 '@krema/angular-eslint-stylelint-builder:lint' ,
128131 {
129132 eslintFilePatterns : [ 'src/**/*.ts' ] ,
130- stylelintFilePatterns : [ 'src/**/*.css' ] ,
133+ eslintConfig : 'eslint.config.js' ,
131134 fix : true ,
135+ stylelintFilePatterns : [ 'src/**/*.css' ] ,
136+ stylelintConfig : 'stylelint.config.js' ,
132137 } ,
133138 { logger }
134139 ) ;
135- const loggerPromise = logger
136- . pipe (
140+ const loggerPromise = lastValueFrom (
141+ logger . pipe (
137142 toArray ( ) ,
138143 map ( messages =>
139144 messages . map ( y => {
@@ -142,7 +147,7 @@ describe('Lint', () => {
142147 } )
143148 )
144149 )
145- . toPromise ( ) ;
150+ ) ;
146151
147152 await run . result ;
148153 await run . stop ( ) ;
@@ -189,4 +194,37 @@ describe('Lint', () => {
189194 } ,
190195 ] ) ;
191196 } ) ;
197+
198+ it ( 'ignores files matching eslintIgnorePatterns and stylelintIgnorePatterns' , async ( ) => {
199+ const run = await architect . scheduleBuilder (
200+ '@krema/angular-eslint-stylelint-builder:lint' ,
201+ {
202+ eslintFilePatterns : [ 'src/**/*.ts' ] ,
203+ stylelintFilePatterns : [ 'src/**/*.css' ] ,
204+ eslintIgnorePatterns : [ '**/file.ts' ] ,
205+ stylelintIgnorePatterns : [ '**/file.css' ] ,
206+ stylelintConfig : 'stylelint.config.js' ,
207+ } ,
208+ { logger }
209+ ) ;
210+ const loggerPromise = lastValueFrom (
211+ logger . pipe (
212+ toArray ( ) ,
213+ map ( messages =>
214+ messages . map ( y => {
215+ return { level : y . level , message : y . message } ;
216+ } )
217+ )
218+ )
219+ ) ;
220+
221+ await run . result ;
222+ await run . stop ( ) ;
223+ logger . complete ( ) ;
224+
225+ // The output should not mention file.ts or file.css
226+ const output = JSON . stringify ( await loggerPromise ) ;
227+ expect ( output ) . not . toContain ( 'file.ts' ) ;
228+ expect ( output ) . not . toContain ( 'file.css' ) ;
229+ } ) ;
192230} ) ;
0 commit comments