File tree Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Expand file tree Collapse file tree 2 files changed +40
-0
lines changed Original file line number Diff line number Diff line change 3
3
CacheEntry ,
4
4
verboseReporter ,
5
5
createCacheEntry ,
6
+ mergeReporters ,
6
7
} from './index' ;
7
8
import { delay , prettyPrint } from './testHelpers' ;
8
9
@@ -215,6 +216,34 @@ describe('verbose reporter', () => {
215
216
} ) ;
216
217
} ) ;
217
218
219
+ describe ( 'mergeReporters' , ( ) => {
220
+ it ( 'merges multiple reporters' , async ( ) => {
221
+ const cache = new Map < string , CacheEntry > ( ) ;
222
+ const logger1 = createLogger ( ) ;
223
+ const logger2 = createLogger ( ) ;
224
+
225
+ await cachified ( {
226
+ cache,
227
+ key : 'test' ,
228
+ reporter : mergeReporters (
229
+ verboseReporter ( { logger : logger1 , performance : Date } ) ,
230
+ undefined ,
231
+ verboseReporter ( { logger : logger2 , performance : Date } ) ,
232
+ ) ,
233
+ getFreshValue ( ) {
234
+ return 'ONE' ;
235
+ } ,
236
+ } ) ;
237
+
238
+ expect ( logger1 . print ( ) ) . toMatchInlineSnapshot (
239
+ `"LOG: 'Updated the cache value for test.' 'Getting a fresh value for this took 0ms.' 'Caching for forever in Map.'"` ,
240
+ ) ;
241
+ expect ( logger2 . print ( ) ) . toMatchInlineSnapshot (
242
+ `"LOG: 'Updated the cache value for test.' 'Getting a fresh value for this took 0ms.' 'Caching for forever in Map.'"` ,
243
+ ) ;
244
+ } ) ;
245
+ } ) ;
246
+
218
247
function createLogger ( ) {
219
248
const log : string [ ] = [ ] ;
220
249
Original file line number Diff line number Diff line change @@ -242,3 +242,14 @@ export function verboseReporter<Value>({
242
242
} ;
243
243
} ;
244
244
}
245
+
246
+ export function mergeReporters < Value = unknown > (
247
+ ...reporters : ( CreateReporter < Value > | undefined ) [ ]
248
+ ) : CreateReporter < Value > {
249
+ return ( context ) => {
250
+ const reporter = reporters . map ( ( r ) => r ?.( context ) ) ;
251
+ return ( event ) => {
252
+ reporter . forEach ( ( r ) => r ?.( event ) ) ;
253
+ } ;
254
+ } ;
255
+ }
You can’t perform that action at this time.
0 commit comments